Erreur de redéfinition de sortie GLUT
Question
Dans mon programme OpenGL simple, j'obtiens l'erreur suivante concernant la 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 celui de Nate Robins GLUT pour Win32 et obtenez cette erreur avec Visual Studio 2005 ou Visual C++ 2005 (Express Edition).Quelle est la cause de cette erreur et comment puis-je la corriger ?
La solution
Cause:
Le stdlib.h fourni avec les versions récentes de Visual Studio a une définition différente (et contradictoire) du sortie() fonction.Cela entre en conflit avec la définition de surabondance.h.
Solution:
Remplacez la définition dans glut.h par celle dans stdlib.h.Placez la ligne stdlib.h au-dessus de la ligne glut.h dans votre code.
#include <stdlib.h>
#include <GL/glut.h>
Autres conseils
ou ca...Pour corriger l'erreur, cliquez avec le bouton droit sur le nom du projet dans l'onglet Explorateur de solutions et sélectionnez Propriétés -> C/C++ -> Préprocesseur -> Définitions du préprocesseur et ajoutez GLUT_BUILDING_LIB aux définitions existantes, séparées par des points-virgules.