2008-08-18 6 views
28

Dans mon programme simple OpenGL je reçois l'erreur suivante au sujet de la redéfinition de sortie:GLUT d'erreur de redéfinition de sortie

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' 

J'utilise Nate Robins' GLUT for Win32 et obtenir cette erreur avec Visual Studio 2005 ou Visual C++ 2005 (Express Édition). Quelle est la cause de cette erreur et comment la réparer?

Répondre

68

Cause:

Le stdlib.h qui est livré avec les versions récentes de Visual Studio a un autre (et contradictoires) définition de la (sortie ) fonction. Il se heurte à la définition dans glut.h.

Solution:

Remplacer la définition glut.h avec celle stdlib.h. Placez la ligne stdlib.h au-dessus de la ligne glut.h dans votre code.

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

ou ce ... Pour corriger l'erreur, faites un clic droit sur le nom du projet dans l'onglet Explorateur de solutions et sélectionnez Propriétés -> C/C++ -> préprocesseur -> Définitions préprocesseur et append GLUT_BUILDING_LIB à l'existant définitions, séparées par des points-virgules.

+0

Merci! y compris stdlib.h au-dessus de votre glut.h n'a pas fonctionné pour moi. Cette solution a fait! – SunnyD

+0

Après cela, je reçois des erreurs de l'éditeur de liens? – Gerard

Questions connexes