opengl/linux : ATI et NVIDIA : le mystere de glXGetProcAddress

opengl/linux : ATI et NVIDIA : le mystere de glXGetProcAddress - C++ - Programmation

Marsh Posté le 24-03-2004 à 01:56:26    

Salut, je ne fais que poser des questions. Mince alors.
 
Un petit problème dont je n'ai trouvé l'écho nul part pour le moment, merci pour votre attention:
 
J'écris un programme opengl sous linux avec radeon 9700. La compilation et l'exécution se déroulent sans problème. Pour rigoler je l'exécute sur un autre pc/linux équipé d'une geforce 4, et là PAF ! je me fais cracher comme quoi la fonction glXGetProcAddress (que j'utilise dans le programme) est introuvable dans le runtime.
Fichtre !
Je recompile sur la 2e machine, et REPAF ! au cours de l'édition des liens il me prétend que la fonction est introuvable.
Cette fonction est bien référencée par "glx.h" que j'inclue évidemment, mais le complio gcc ne semble pas la trouver dans les librairies opengl.
Damned !
Je cherche manuellement la référence "glXGetProcAddress" dans libGL.so, et elle s'y trouve bien !
Je commence à devenir fou, je me demande si la geforce4 se fout pas de moi, et je vérifie mon Makefile.
Enfin, j'aimerais que vous le vérifiez avec moi, s'il était envisageable de vous le demander (il est tout simple)
Le voici  (merci !):
 
CFLAGS=   -m32
AFLAGS=   -O2 -fomit-frame-pointer -pipe -march=i686 -mcpu=pentiumpro -fno-strict-aliasing -fno-strength-reduce -L/usr/X11R6/lib
LIBFLAGS= -lXmu -lXt -lSM -lICE -lXext -lX11 -lXi -lXext -lX11 -lm -Wno-deprecated
course: main.cpp structure.o biblioMath.o
 g++ $(CFLAGS) -o course $(AFLAGS) main.cpp structure.o biblioMath.o udp_cliser.o /usr/lib/libglut.so /usr/lib/libGLU.so /usr/lib/libGL.so $(LIBFLAGS)
structure.o: structure.cpp
 g++ -c structure.cpp
biblioMath.o:  
 g++ -c biblioMath.cpp
 
 
Voilà ! Rien de méchant a priori, d'ailleurs ca passe tres bien sur les librairies ati. Mais celles de nvidia rejettent toutes acces à la foutue fonction. J'ai pourtant vérifié que c'étaient bien les librairies proprietaires qui étaient appelée, et pas Mesa ou autre (merci, j'ai donné dans le combat contre Mesa, et pas que dans half-life)
 
 
Bref, pourquoi tant d'incompréhension ? Quelqu'un aurait-il déja eu ce genre de problème ?
 
Merci pour toute réponse !
 
john_john

Reply

Marsh Posté le 24-03-2004 à 01:56:26   

Reply

Marsh Posté le 11-07-2004 à 02:23:26    

if you are using Linux, I think you need to use glXGetProcAddressARB
instead of glXGetProcAddress
 
good luck

Reply

Marsh Posté le 11-07-2004 à 11:21:21    

-march=i686 -mcpu=pentiumpro
 
 
-> n'utilise que march, RTFM

Reply

Sujets relatifs:

Leave a Replay

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