2016-07-13 1 views
0

Я пытаюсь скомпилировать программу, которая использует как libyara, так и protobufs, используя VC 2013. Я статически собрал библиотеку libyara, и она хорошо компилируется в мою программу. Как только я добавляю файлы заголовков для моих protobufs, все идет плохо ... быстро. Проблема, которую я имею, связана с тем, что кажется неправильным заголовком, но я собираюсь предположить, что MS поставляет файлы заголовков правильно. Есть ли здесь трюк, который мне не хватает? Это частичный результат компиляции:Компиляция Protobufs и Libyara с VC 2013

1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(214): warning C4602: #pragma pop_macro : 'new' no previous #pragma push_macro for this identifier 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(215): warning C4193: #pragma warning(pop) : no matching '#pragma warning(push)' 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xtgmath.h(216): warning C4161: #pragma pack(pop...) : more pops than pushes 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\cmath(23): error C2061: syntax error : identifier 'abs' 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\cmath(23): error C2059: syntax error : ';' 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\cmath(23): error C2061: syntax error : identifier 'acos' 
1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\cmath(23): error C2061: syntax error : identifier 'asin' 

Любые предложения по устранению этого? Связано ли это со смесью библиотеки C (libyara) и библиотеки C++ (protobuf)?

ответ

0

Оказывается, это проблема со смешением кода C и C++. Решение состояло в том, чтобы изменить расширение файла для моих .c файлов на .cpp, чтобы все рассматривалось как C++ с помощью MSVC.