Je viens de télécharger la source 3_01_opengl1.cpp du site de JeanYvesYves mais j´ai un problème à la compilation dans dev c++. Ces messages concernent des commandes SDL (
[Linker error] undefined reference to `SDL_Quit´
par exemple) et Glut (
[Linker error] undefined reference to `glShadeModel@4´)
Je ne comprends car je trouve pourtant tous les fichiers de librairie dans le dossier lib et j´ai installé SDL en suivant la procédure à la lettre, d´ailleur j´arrive à compiler les exercices SDL sans problème...
Pour info, ma version de dev c++ est la 4.9.7.0. Peut être que le fait que ce soit une ancienne version y est pour quelque chose...
Tu as bien linké :
SDLmain
SDL
opengl32
glu32
? ??
Linké??? Tout le code est laissé tel quel, comme JYY l´a mis sur son site. En revanche, je n´ai rajouté que les options SDL dans les paramètres du compilateur si c´est ça que tu veux dire. Il faut rajouter quelque chose pour OpenGL et Glut? Ce qui m´étonne c´est que les exercices consacrés uniquement à SDL marchent sans erreurs et que je me retrouve avec des erreurs SDL dans ce projet... ![]()
" et Glut (
[Linker error] undefined reference to `glShadeModel@4´) "
Ce n´est pas une fonction de la librairie GLUT, sinon la fonction ressemblait a quelque chose style glutFoo(). Les " undefined references" du linker sont principalement dues au fait que tu n´as pas linké les libs. J´imagine que tu utilises DevC++ et MinGW donc je ferais pas de pas-a-pas. Ca doit etre quelque chose comme -lopengl -lsdl -glut
" Il faut rajouter quelque chose pour OpenGL et Glut?"
Of coz ! Comment veux tu que ton linker trouve les références faites aux librairies ?
" Ce qui m´étonne c´est que les exercices consacrés uniquement à SDL marchent sans erreurs et que je me retrouve avec des erreurs SDL dans ce projet."
100 contre 1 que c´est une erreur de manip´
Suit bien les instructions des tutoriaux.
NB: Sous Visual Studio on a le choix entre linker dans les options du projet ou utiliser le pragma comment, ce qui n´est pas réputé fonctionnel si vous me suivez ![]()
On est pas chez mémé non plus..
tres bizarre que ça te parle de glut !
tu es sur que ce n´est pas plutot " glu" ?
Bref, n´oublie pas les :
-lopengl -lglu
en + de tes link SDL.
Bizarre l´erreur sur SDL_quit...
Essaie de vérifier déja les -l
ensuite, au pire, enleve carrément le SDL_Quit, mais c´est bizarre !
Tiens moi au courant
Bon, en fait, j´avais oublié de rajouter
-lSDLmain -lSDL dans les paramètres du compilateur
. Maintenant, dans les paramètres j´ai tapé:
-lmingw32 -lSDLmain -lSDL -lopengl -lglu
J´ai quand même 2 erreurs:
\Juju\Dev-Cpp\Bin\..\lib\gcc-lib\mingw32\2.95.3-6\
..\..\..\..\mingw32\bin\ld.exe D:\Juju\Dev-Cpp\My projects\sdl\D
cannot find -lopengl
D:\Juju\Dev-Cpp\My projects\sdl\Makefile.win
[Build Error] [sdl.exe] Error 1
( Sachant que SDL est le nom de mon projet...)
Regarde si tu as opengl.a ou libopengl.a ou libgl.a dans ton repertoire . lib de dev.
Dis moi lequel tu as, je corrigerai ![]()
Et dans ce cas la, il faut mettre :
-lgl -lglu
tiens moi au courant ![]()
T´as essayé comme je t´ai dit plus haut ?
-lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32
Ah ! ptival a raison je crois.
Essaie comme il dit. Sinon, regarde dans ton repertoire lib le nom des lib opengl ![]()
Que d´étourderies....Désolé Ptival mais j´avais pas vu le 32 derrière lopengl et lglu
Maintenant tout marche!!
Mici beaucoup Ptival ![]()
Si tu veux bien voir les différentes options de OpenGL, lis bien tout le tuto, y´a des manips a faire ![]()
Mouaip...allez chuis motivé....Heu, encore une question: Est ce nécessaire d´apprendre les commandes du C pour le C++? Parce qu´en fait, je shouaite vraiment avoir les bases du langage avant de m´attaquer à la programmation graphique...Même si je m´amuse à compiler tes sources JYY
. Bah, OpenGL c´est pour plus tard! Au fait, pour quand est ce que la sortie d´OpenGL 2.0 est elle prévue? ![]()
" Est ce nécessaire d´apprendre les commandes du C pour le C++"
--> Ben ça ne pourrait que t´etre bénéfique ![]()
Moi a ta place je commencerais par apprendre les bases !
Si tu maitrises le C tu connais une bonne partie du C++
OpenGL 2.0, personne ne sait vraiment, a fait maintenant quelques temps que les trois principaux manufacturers presentent l´ogl 2.0 en feature de leurs drivers: 3DLabs, ATI et Nvidia. Le probleme c´est que comme tu le sais Opengl n´est pas actualisé sur plateforme Windows, ça s´arrete a la 1.1 qui date de 1996. Pour beneficier du reste ( 1.2,1.5,2.0..) Il faut utiliser une librairie spéciale, autrement dit tu n´auras pas de headers opengl 2.0, ni de librairies, ni de Dll. Tout ça se passe via ton code, je parle bien sur des extensions. Et c´est la ou avoir une bonne carte graphique est important car les fonctions propres a chaque manufacturers sont la base de l´OpenGL 2.0, on a bien sur l´ARB, mais aussi ATI, Nvidia qui font leurs propres extensions. Ce n´est pas veritablement uniformisé..
Pour plus de renseignement je te renvois a la doc d´opengl.org le site de référence, gamedev.net fait l´affaire pour une intro rapide aux extensions opengl 2.0..
http://www.opengl.org/documentation/opengl_current_version.html
http://www.realtech-vr.com/glview/extensions.html
Le dernier lien est un super tool pour savoir ce que ta carte supporte au niveau des extensions
je ne suis pas d´accord pour la version 1.1.
les dll des pilotes de cartes permettent d´exploiter les nouvelles versions ![]()
Les headers restrent identiques, mais la souplesse des fonctions ( comme par exemple la tolérance des texture de n´importe quel format) a évolué
OpenGL n´est pas vraiment une révolution ai je entendu... Ils ont gardé la meme chose et l´on un peu amélioré, enfin on verra quand il viendra ![]()
Oui pour les dll, je parlais des dll Microsoft, ça yen a pas des nouvelles, bien sur il faut comprendre que l´implé OpenGL 2.0 reste a la charge du constructeur, mais c´etait pas évident a comprendre désolé ( le sujet est tellement rabaché sur le forum opengl.org qu´on en oublie comment ça marche
)
Sinon, moi je pense que c´est une revolution, parcequ´officielement le GLSL est un feature opengl 2.0, et que moi gnaime bien lé shader languages
http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf
Je n´ai jamais codé ni en OpenGL ni en DirectX mais je suis certain qu´OpenGL est bien plus performante...Elle a réussi a garder la tête haute en 1 version 1/2 devant microsoft qui a décliné DirectX en 9 versions. Respect. Bon encore 2 dernières questions :
Est il plus facile de programmer pour OpenGL ou pour Direct3D?
Est ce que OpenGL est open source?
" Je n´ai jamais codé ni en OpenGL ni en DirectX mais je suis certain qu´OpenGL est bien plus performante."
Ouh qu´il est poilu celui là
" Est il plus facile de programmer pour OpenGL ou pour Direct3D? "
Largement plus facile en OpenGL, mais la facilité ne fait pas tout..
" Est ce que OpenGL est open source? "
Non, elle appartient a SGI, mais elle est très portable