[C++][OpenGL] Extensions de m....

Extensions de m.... [C++][OpenGL] - Programmation

Marsh Posté le 23-05-2001 à 13:40:09    

Voici mon probleme :
sur mon ordi j'ai tous les headers OpenGL necessaires, le dernier GLext.h de nVidia.
 
Bien. Mon programme se compile parfaitement, et au linkage, j'ai ca :
 
eric@vsl155:~/vrender/erlangen > make
g++ -c -O3 -fomit-frame-pointer -m486 -Wall -pipe -I/usr/include/g++ -I. -I../../include -DFX -DXMESA -w volume.cpp -o volume.o
g++ -O3 -fomit-frame-pointer -m486 -Wall -pipe -I/usr/include/g++ -I. -I../../include -DFX -DXMESA -w  volume.o -o volume -L../../lib -L. -L/usr/local/glide/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -lXt -lXi -lXmu -lXext -lX11 -lm
volume.o: In function `DrawStack1Interpolated(float *)':
volume.o(.text+0x1fd9): undefined reference to `glSecondaryColor3dvEXT'
volume.o(.text+0x2080): undefined reference to `glSecondaryColor3dvEXT'
volume.o: In function `DrawStack2Interpolated(float *)':
volume.o(.text+0x4cb8): undefined reference to `glSecondaryColor3dvEXT'
volume.o(.text+0x4d5b): undefined reference to `glSecondaryColor3dvEXT'
volume.o: In function `DrawStack3Interpolated(float *)':
volume.o(.text+0x704d): undefined reference to `glSecondaryColor3dvEXT'
volume.o(.text+0x70f0): more undefined references to `glSecondaryColor3dvEXT' follow
collect2: ld returned 1 exit status
make: *** [volume] Error 1
 
 
Le probleme c'est que l'extension glSecondaryColor3dvEXT est definie dans le glext.h par :
extern void APIENTRY glSecondaryColor3dvEXT (const GLdouble *);
 
Donc ca devrait marcher non ?
Surtout que avant cette fonction, dans mon source, je fais appel a d'autres extensions OpenGL, et la tout se passe bien, aucun probleme de link.
 
:??:

Reply

Marsh Posté le 23-05-2001 à 13:40:09   

Reply

Marsh Posté le 23-05-2001 à 15:03:56    

:bounce:

Reply

Marsh Posté le 23-05-2001 à 19:15:48    

:bounce:

Reply

Marsh Posté le 24-05-2001 à 00:57:08    

bienvenue dans le fabuleux monde des extensions opengl. je déteste.
 
si je me souviens bien, les prototypes sont là pour t'aider, mais ne sont pas déclarés par défaut (pas pour rien qu'on appelle ça des extensions :)). il faut récupérer l'adresse de la proc avec wglGetProcAddress. tu castes ensuite le résultat vers un pointeur glSecondaryMachin* qui te servira à appeler la fonction.

Reply

Marsh Posté le 24-05-2001 à 02:26:22    

tu utilises quoi comme compilateur ? Moi j'utilise Dev-C++ depuis peu et il me faisait un truc similaire. En fait j'ai installé glut 3.6 et non glut 3.7b, les dernieres versions d'opengl. Ensuite dans les options du projet, en commandes additionnelles j'ai mis : -lopengl32 - lglu32 - lglut32 paske j'utilise glut, sinon tu ne mets que -lopengl32 -lglu32.
Fais une recherche sur le site du compilateur que tu utilises, moi c'est comme ça que j'ai trouvé la bonne réponse.

Reply

Marsh Posté le 24-05-2001 à 03:56:17    

moi g un pb du genre quand je compile juste avec <gl/glut.h> sa marche nickel, mais quand c une version windows avec`<windows.h>
<gl/gl.h> et <gl/glu.h> la tout crampe et sa donne ça:
 
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp:
Warning W8066 C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp 85: Unreachable code in function __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
Warning W8057 C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp 87: Parameter 'hPrevInstance' is never used in function __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
Warning W8057 C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp 87: Parameter 'lpCmdLine' is never used in function __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
Warning W8057 C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp 87: Parameter 'nCmdShow' is never used in function __stdcall WinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int)
Warning W8066 C:\WINDOWS\Bureau\DED\C\Ded\Main (Windows).cpp 155: Unreachable code in function __stdcall WinProc(HWND__ *,unsigned int,unsigned int,long)
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_main' referenced from C:\BORLAND\BCC55\LIB\C0X32.OBJ
 
c vraiment chiant.

Reply

Marsh Posté le 24-05-2001 à 12:46:05    

ché po, moi j'utilisais Visual C++ et aucun pb, maintenant j'utilise Dev-C++ et ça fonctionne nickel.

Reply

Marsh Posté le 24-05-2001 à 16:08:54    

Merci pour vos reponses.
 
1. Je suis sous Linux, pas de wglGetProcAdress.
2. Ca compilait avant... avec le meme makefile...
 
Snifff... :cry:

Reply

Marsh Posté le 25-05-2001 à 04:47:08    

Bounga69 a écrit a écrit :

ché po, moi j'utilisais Visual C++ et aucun pb, maintenant j'utilise Dev-C++ et ça fonctionne nickel.




J'ai Dev-C++(v4.01) mais c merdique sa marche pas en plus g tout les headers et librarie qu'il faut pour le openGL :fou:  
il marche juste avec <windows.h> et <gl/gl.h>, mais pas avec <gl/glut.h> :fou:  :fou:

 

[edit]--Message édité par Ded_2K--[/edit]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed