使用 VC 2013 编译 Protobufs 和 Libara
Compiling Protobufs and Libyara with VC 2013
我正在尝试使用 VC 2013 编译一个同时使用 libyara 和 protobufs 的程序。我静态编译了 libyara 库,它很好地编译到我的程序中。一旦我为我的 protobufs 添加 header 文件,事情就会变得很糟糕......很快。我遇到的问题与 header 似乎不正确的内容有关,但我假设 MS 提供的 header 文件是正确的。这里有我想念的技巧吗?这是编译的部分输出:
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)的混合有关吗?
事实证明这是混合使用 C 和 C++ 代码的问题。解决方案是将我的 .c 文件的文件扩展名更改为 .cpp,以便 MSVC 将所有内容都视为 C++。
我正在尝试使用 VC 2013 编译一个同时使用 libyara 和 protobufs 的程序。我静态编译了 libyara 库,它很好地编译到我的程序中。一旦我为我的 protobufs 添加 header 文件,事情就会变得很糟糕......很快。我遇到的问题与 header 似乎不正确的内容有关,但我假设 MS 提供的 header 文件是正确的。这里有我想念的技巧吗?这是编译的部分输出:
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)的混合有关吗?
事实证明这是混合使用 C 和 C++ 代码的问题。解决方案是将我的 .c 文件的文件扩展名更改为 .cpp,以便 MSVC 将所有内容都视为 C++。