Compiler OpenGL avec Visual C++ sous Vista

Fermé
geo de provence - 21 juil. 2007 à 19:31
 bourriquet_42 - 12 nov. 2008 à 09:13
Bonjour,

Je suis en train de réaliser un programme 3D en OpenGL et SDL sous le logiciel Visual C++, mon système d'exploitation étant Windows Vista. Cependant, j'ai un petit problème :

Lors de la phse de compilation du programme en OpenGL, Visual C++ fait 143 fautes dans lesquelles j'ai cru comprendre qu'il ne reconnaissait pas le code écrit dans le fichier "gl.h". Voici les premières lignes de ces 143 fautes :


1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\gl.h(1152) : error C2144: erreur de syntaxe : 'void' doit être précédé de ';'
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\gl.h(1152) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\gl.h(1152) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'glAccum'
1>c:\program files\microsoft visual st...
......


Quelqu'un serait'il par hasard d'où vient cette erreur ?
Merci d'avance.


PS: je suis dans une école d'ingénieur en électronique et informatique et je cherche partout la réponse à mon problème depuis environ trois mois. Cela compte donc énormément pour moi de pouvoir résoudre ce problème.
A voir également:

13 réponses

ph8 Messages postés 1 Date d'inscription lundi 23 juillet 2007 Statut Membre Dernière intervention 23 juillet 2007 7
23 juil. 2007 à 20:16
Ifaut inclure windows.h


#include <windows.h>



Même si tu ne l'utilises pas, je sais pas exactement pourquoi mais bon ya que comme ca que ca fonctionne sous VC++
7
mamiemando Messages postés 33632 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 avril 2025 7 841
22 juil. 2007 à 03:29
Peux-tu nous donner la ligne 1152 du fichier gl.h (et les qq lignes autour) ?
Manifestement il trouve bien les headers mais on dirait qu'il y a des pb de #define.
Sinon à mon avis le problème n'a rien à voir avec le fait que tu sois sous vista plutôt qu'xp, il faudrait plutôt regarder du côté des options que tu passes à ton compilateur.
Tu peux aussi essayer de voir si ça compile mieux avec devcpp.
Mais il faudra configurer l'opengl également, en particulier
- les répertoires d'include (pour trouver les headers opengl)
- les répertoires de librairies (pour trouver les binaires des librairies)

Bonne chance
0
geo de provence
22 juil. 2007 à 11:01
Merci pour ta réponse.

Voici les qqs lignes entourant la 1152 de GL.h :

...
/* For compatibility with OpenGL v1.0 */
#define GL_LOGIC_OP GL_INDEX_LOGIC_OP
#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT

/*************************************************************/

WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value);                                 <-- 1152
WINGDIAPI void APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
WINGDIAPI GLboolean APIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
WINGDIAPI void APIENTRY glArrayElement (GLint i);
WINGDIAPI void APIENTRY glBegin (GLenum mode);
WINGDIAPI void APIENTRY glBindTexture (GLenum target, GLuint texture);

...

Sinon pour les options du compiler j'avoue que c'est peut etre à cet endroit que ça bloque, je ne suis pas sur, parce que je ne sais pas vraiment quelles options il faut mettre, mais au niveau des fichiers à linker c'est bon normalement.
0
mamiemando Messages postés 33632 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 avril 2025 7 841
22 juil. 2007 à 13:13
Alors en fait il ne comprend pas ce qu'est WINGDIAPI. Il faudrait que tu trouve à quel endroit ce #define est fait et que tu vois les variables à débloquer pour le configurer. Souvent ces #define sont encadrés de trucs du genre :
#ifdef TRUC
...
#define WINGDIAPI
...
#endif

auquel cas sous gcc/g++ il faut passer l'option -DTRUC. Au besoin, tu peux utiliser devcpp au lieu de visual qui utilise gcc si tu ne sais pas passer une option de ce genre à visual.
http://www.bloodshed.net/

Fais une recherche google sur ce nom de variable + opengl, en particulier j'ai vu ce lien :
https://www.developpez.net/forums/d237828/c-cpp/outils-c-cpp/visual-cpp/viual-cpp-2005-opengl/

Apparemment il est question d'un <windows.h> mais je t'avoue que je n'ai jamais développé sous windows donc je ne sais pas si ça va t'aider. Par contre la fin me paraît intéressante car QT permet de faire de l'opengl
http://trolltech.com/products/qt/indepth/modules

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geo de provence
22 juil. 2007 à 15:43
Il n'y a aucun #define WINGDIAPI dans le fichier gl.h, il doit se trouver dans windows.h mais comme certains l'ont conseillé, je l'ai bien mis en haut de la liste des #define et donc il ne devrait pas y avoir ce pb, ce n'est pas normal.

Sinon, pour ce qui est de DevC++, je l'utilisais au tout début de ma programmation sur XP mais depuis j'ai changé, et je ne suis pas sur qu'il soit compatible Vista/OpenGL d'après ce que j'ai lu sur certains forums, je préfèrerais trouver un moyen pour faire fonctionner VC++.

J'ai vu aussi que OpenGL pouvait se programmer à partir de QT, qui est une très bonne librairie pour faire des logiciels. Mais je fais en ce moment un jeu en OpenGL, donc je ne peux pas utiliser QT dessus.

Donc j'en suis toujours au même point ^^, mais je te remerci grandement d'essayer de m'aider quand même.
0
mamiemando Messages postés 33632 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 avril 2025 7 841
23 juil. 2007 à 02:48
Le truc c'est que peut être que WINAPI = static, on n'en sait rien. Un #deinf ca peut avoir une valeur. A ta place je ferais une recherche à l'intéreieur de tous les .h dont tu disposes à la recherche de cette variable.

Pour dev cpp je ne vois pas pourquoi mais c'est comme tu préfères. Par contre moi je ne peux pas t'aider sur visual, je ne connais pas.

Tu peux utiliser QT pour faire des jeux, il me semble même qu'un jeu ou tu dégommes des astéroïdes est présenté dans la doc. De toutes façons QT ne fait que te fournir des classes C++ après à toi d'utiliser ce qui t'intéresse.
0
geo de provence
23 juil. 2007 à 16:50
ok, je vais essayer de voir dans les fichiers .h i je trouve une réponse pour ce WINGDIAPI mais je ne pense pas que l'erreur vienne de là. ça viendrait plutot de la config du projet pour supporter OpenGL à mon avis, mais je ne vois pas où, je vais chercher des infos pour voir comment ça se fait.

C'est vrai que l'on peut faire des jeux avec QT mais il n'a pas été conçu pour ça, mais plutot pour les logiciels et les interfaces graphiques de ceux-ci surtout, je vais rester sans pour le moment ^^.
0
mamiemando Messages postés 33632 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 avril 2025 7 841
23 juil. 2007 à 17:25
Fais comme tu veux... Mais bon si tu ne testes pas ce que je t'ai proposé je vais avoir du mal à t'aider.
0
geo de provence
23 juil. 2007 à 19:47
Si, il va bien bien falloir que je teste DevCpp sous Vista si j'y arrive pas avec VC++, mais bon j'aurai vraiment bien aimé pouvoir l'utiliser.
0
geo de provence
24 juil. 2007 à 11:13
Je suis déjà au courant ph8, pas d'inquiétude de ce coté là, j'utilise dans presque tous mes programmes la librairie windows.h, mais merci quand meme ^^

Finalement, vu que je ne trouve pas du tout ce qui ne va pas avec VC++, je vais repasser sur ma partition xp pour compiler l'OpenGL, mais un grand merci pour ton aide quand même mamiemando, si à un moment je trouve comment faire je mettrai la solution sur cette discussion.
0
bourriquet_42
12 nov. 2008 à 09:13
J'arrive encore plus tard mais bon...
J'avais exactement les mêmes erreurs, et j'ai juste mis #include <windows.h> (et non pas #define) avant le #include<gl.gl.h> et tout baigne.
0
mamiemando Messages postés 33632 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 avril 2025 7 841
24 juil. 2007 à 00:34
A mon avis il fait simplement les #define qui vont bien... Mais je t'avouerais que n'ayant jamais développé sous windows j'en ai aucune idée...
-1
Je suis conscient que ma réponse arrive un peu tard mais voyant que tu n'as pas poster de solution, j'espere que la mienne pourra t'aider.
J'avais le même probleme que toi jusqu'au jour ou je suis allé sur ce site : http://www.dil.univ-mrs.fr/~garreta/generique/autres/OGL/index.html
si tu utilise devcpp tu suis les étapes 2-3-4-5bis et 6 ce qui te prendra environ 10 minutes et à la fin surprise ton programme se compilera correctement.
BY
-1