2009-01-10 8 views
17

Compiler un fichier qui utilise OpenGL avec Visual C++, lorsque je tente d'inclure le fichier d'en-tête de gl.h je reçois environ 150 inutiles des erreurs de compilation:VC++ des erreurs de compilation lors de l'inclusion gl.h

erreur C2144: erreur de syntaxe: 'vide' devrait être précédé de ';'

erreur C4430: spécificateur de type manquant - int supposé. Remarque: C++ ne prend pas en charge default-int

erreur C2146: erreur de syntaxe: manquant ';' avant identifiant 'glAccum'

etc.

Répondre

43

Juste #include <windows.h> avant <gl/gl.h> ou <gl/glu.h>. Il est nécessaire pour certains types, tels que WINGDIAPI et APIENTRY.

+2

comment faire cela correctement sans inclure le Windows.h? – mr5

1

On dirait que vous incluez un en-tête de C à l'intérieur d'un projet C++. Essayez joignant votre include intérieur:

extern "C" { 
#include "gl.h" 
} 
-1

La première possibilité est de considérer que les messages du compilateur sont en fait droit. Il y avait sûrement des numéros de ligne inclus dans ces messages d'erreur, alors avez-vous regardé les lignes incriminées, et certaines des lignes qui les précèdent, pour essayer d'identifier ce qui pourrait vraiment être la cause?

Y a-t-il eu d'autres messages avant ceux que vous avez cités? (Un en-tête manquant, par exemple?) Commencez toujours à adresser les messages du compilateur du premier; les derniers sont parfois juste des effets secondaires causés par cela.

Pouvez-vous reproduire le problème dans un projet simple? Est-il suffisant de simplement écrire #include <gl.h> dans un fichier autrement vide et essayer de le compiler? Ou est-il plus sur ce code source qui provoque l'erreur se produire? Rappelez-vous que vous êtes celui ici avec l'accès à votre code;

Les questions que je pose ci-dessus sont le genre de choses que vous devez considérer puisque vous ne pouvez pas toujours demander à quelqu'un d'autre de déboguer votre code pour vous.

2

Si vous utilisez Visual C++, assurez-vous que vous avez déjà la bibliothèque opengl. utilisation #include <windows.h> avant la #include <GL/gl.h> et si vous utilisez #include <glut.h> dans votre programme vous assurer que vous ne tapez comme ça #include <GL/glut.h>, si vous tapez comme ça peut être une erreur « GL/glut.h tel fichier ou répertoire »

Questions connexes