2012-04-12 288 views
4

我已经解决了这个问题(来自here)。只要把它放在这里,让任何遇到错误的人都能找到更清晰的问题和答案,而不必从我从中得到的网站去挖掘。我会很快回答这个问题。C2086:'int WINGDIAPI':Open Scene Graph中的重定义错误?

遇到的错误是:

Error 13 error C2086: 'int APIENTRY' : redefinition C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\GL\gl.h 1153 
Error 10 error C2086: 'int WINGDIAPI' : redefinition C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\GL\gl.h 1153 
Error 3 error C2144: syntax error : 'void' should be preceded by ';' C:\Program Files\Microsoft Visual Studio 10\VC\include\GL\gl.h 1152 

回答

6

的解决方案是:从this website]

您需要WIN32在你的项目添加到定义获得。在Visual Studio中,右键单击项目,转到C/C++,预处理器,然后在预处理器定义字段中为调试和发布配置添加WIN32。当您处于这种状态时,还要为调试配置添加_DEBUG,并为发布配置添加NDEBUG ...
由于某些原因,默认VS项目没有预处理器定义,尽管至少应该始终使用这些定义。 ..

3

我的解决方案已包含那些预处理器定义。 MSDN建议您也添加#include <windows.h>

1

我想要添加CMake解决方案。

您应该将/ D“WIN32”添加到可在高级条目中找到的CMAKE_CXX_FLAGS中。

2

我有一段代码寻找_WIN32而不仅仅是WIN32。

#if defined(_WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64) 
#include <windows.h> 
#endif 

对于它的价值,流行的音色库,包括WINDOWS.H之前使用此