Donc, j'utilise freeglut pour essayer de faire quelques trucs openGL, mais je continue à obtenir des erreurs disant que les références sont indéfinies :
CMakeFiles\texture_mapping.dir/objects.a(TextureMapper.cpp.obj): In function `ZN13TextureMapper4initEv':
.../TextureMapper.cpp:20: undefined reference to `glClearColor@16'
.../TextureMapper.cpp:23: undefined reference to `glMatrixMode@4'
.../TextureMapper.cpp:24: undefined reference to `glLoadIdentity@0'
.../TextureMapper.cpp:25: undefined reference to `glOrtho@48'
CMakeFiles\texture_mapping.dir/objects.a(TextureMapper.cpp.obj): In function `ZN13TextureMapper7displayEv':
.../TextureMapper.cpp:45: undefined reference to `glClear@4'
...TextureMapper.cpp:48: undefined reference to `glColor3f@12'
...TextureMapper.cpp:49: undefined reference to `glBegin@4'
...TextureMapper.cpp:52: undefined reference to `glVertex3f@12'
...TextureMapper.cpp:53: undefined reference to `glVertex3f@12'
...TextureMapper.cpp:54: undefined reference to `glVertex3f@12'
...TextureMapper.cpp:55: undefined reference to `glVertex3f@12'
...TextureMapper.cpp:58: undefined reference to `glEnd@0'
...TextureMapper.cpp:61: undefined reference to `glFlush@0'
J'utilise MinGW avec CLion pour réaliser ce projet. Je pensais que tout était correct. J'ai déplacé les fichiers appropriés dans le répertoire include
dans MinGW, ainsi que le dossier bin
ainsi que le dossier lib
dossier. Ensuite, j'ai ceci dans mon CMakeLists.txt
:
cmake_minimum_required(VERSION 3.3)
project(texture_mapping)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp TextureMapper.cpp TextureMapper.h Vertex.h ObjParser.cpp ObjParser.h)
add_executable(texture_mapping ${SOURCE_FILES})
target_link_libraries(texture_mapping libfreeglut.a libfreeglut_static.a)
Les bibliothèques que j'ai liées étaient les seuls fichiers de bibliothèque fournis avec freeglut.
Alors, qu'est-ce que je rate ? CLion ne montre pas d'erreurs avant la compilation. Je peux même aller dans les fonctions dans les fichiers d'en-tête fournis par freeglut. Pourquoi alors, ces fonctions ne sont-elles pas définies dans mon programme ?