2008-08-18 12 views
28

In meinem einfachen OpenGL Programm bekomme ich folgende Fehlermeldung über Ausfahrt Neudefinition:GLUT Ausgang Neudefinition Fehler

1>c:\program files\microsoft visual studio 8\vc\include\stdlib.h(406) : error C2381: 'exit' : redefinition; __declspec(noreturn) differs 
1>  c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\glut.h(146) : see declaration of 'exit' 

Ich verwende Nate Robins' GLUT for Win32 und diesen Fehler mit Visual Studio 2005 oder Visual C++ 2005 (Express Auflage). Was ist die Ursache für diesen Fehler und wie behebe ich ihn?

Antwort

68

Ursache:

Die stdlib.h die Schiffe mit den jüngsten Versionen von Visual Studio hat eine andere (und widersprüchliche) Definition der exit() Funktion. Es kollidiert mit der Definition in glut.h.

Lösung:

Aufschalten der Definition in glut.h mit, dass in stdlib.h. Platzieren Sie die Zeile stdlib.h über der Zeile glut.h in Ihrem Code.

#include <stdlib.h> 
#include <GL/glut.h> 
15

oder diese ... Um den Fehler zu beheben, klicken Sie rechts auf den Projektnamen in der Registerkarte Projektmappen-Explorer und wählen Sie Eigenschaften -> C/C++ -> Preprocessor -> Präprozessordefinitionen und hängen GLUT_BUILDING_LIB an die bestehende Definitionen, durch Semikola getrennt.

+0

Danke! einschließlich stdlib.h über Ihrem glut.h hat nicht für mich gearbeitet. Diese Lösung hat! – SunnyD

+0

Danach bekomme ich Linker Fehler? – Gerard

Verwandte Themen