Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C2086: 'int WINGDIAPI' : redefinition errors in Open Scene Graph?

I've solved this problem (from here). Just putting it here, so that anyone else who encounters the error will find a cleaner question and answer than to have to go dig through the website where I got it from. I'll be answering this question soon myself.

The errors encountered are:

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 
like image 978
Nav Avatar asked Apr 12 '12 03:04

Nav


3 Answers

The solution is: [Obtained from this website]

You need to add WIN32 to the defines in your project. In Visual Studio, right-click on your project, go to C/C++, Preprocessor, and in the Preprocessor Definitions field add WIN32 for both debug and release configurations. While you're at it, also add _DEBUG for the debug configuration and NDEBUG for the release configuration...
For some reason the default VS projects have no preprocessor definitions, even though these, at least, should almost always be used...

like image 86
Nav Avatar answered Sep 20 '22 15:09

Nav


My solution already contained those Preprocessor definitions. MSDN suggest that you also add #include <windows.h>

like image 23
Gandalf458 Avatar answered Sep 20 '22 15:09

Gandalf458


I had a piece of code looking for _WIN32 as opposed to just WIN32.

For what it's worth, popular sound library uses this before including windows.h:

#if defined(_WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
#include <windows.h>
#endif
like image 35
Jonathan Avatar answered Sep 19 '22 15:09

Jonathan