2012-04-12 21 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之前使用此