Compilation d'un projet avec des fonctions OpenGL
Bonjour !
Je viens vers vous parce que j'ai de grosses difficultés de compilation pour un projet en C++ qui utilise Qt5 et OpenGL. Je compile et exécute sous Windows, grâce au logiciel QtCreator et à CMake.
Le problème est que pour certaines fonctions, la compilation me renvoie le message d'erreur suivant :
Code:
1 2 3 4 5
| Undefined reference to `_imp__glMatrixMode@4` Camera.cpp
Undefined reference to `_imp__glLoadIdentity@0` Camera.cpp
Undefined reference to `_imp__glFrustum@48` Camera.cpp
CMakeFiles\Project3Donut.dir/objects.a(Camera.cpp.obj):bad reloc address 0x53 in section `.text $_ZmiRK9QVector4DS1_[__ZmiRK9QVector4DS1_]`
Error: ld returned 1 exit status collect2.exe |
De ce que j'en comprends, il n'arrive pas à trouver la définition des fonctions MatrixMode, LoadIdentity et Frustum qui ont été appelées de la façon suivante :
Code:
1 2 3
| glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(_xmin, _xmax, _ymin, _ymax, _zNear, _zFar); |
J'ai également une erreur d'une même type lorsque j'essaye d'utiliser des fonctions de la bibliothèque QtXmlPatterns.
Pour OpenGL, les fichiers devraient être trouvés grâce au CMake :
Code:
1 2 3 4 5 6
| FIND_PACKAGE( Qt5OpenGL REQUIRED )
IF( Qt5OpenGL_FOUND )
MESSAGE( STATUS "Qt5 OpenGL module FOUND!" )
ELSE()
MESSAGE( WARNING "Qt5 OpenGL module NOT FOUND!" )
ENDIF() |
Qui ne génère aucune erreur... Si ce n'est plus tard les "undefined reference".
A savoir que ce projet compile chez un de mes camarades qui travaille en ligne de commande (et inclut OpenGL32 dans sa compilation avec CMake de ce que j'ai compris, je ne sais pas si ça peut jouer...), mais que chez un autre camarade qui utilise également QtCreator sous Windows on retrouve la même erreur...
Pensez vous qu'il faille préciser clairement que l'on veut utiliser la bibliothèque OpenGL32 pour que ça fonctionne aussi ? Et si oui, à quel moment ?
Merci d'avance à ceux qui pourront m'aider !