Я пытаюсь скомпилировать 64-битную версию программы OpenGL C ++, используя freeglut. Я следовал точным инструкциям на этом сайте , чтобы настроить FreeGLUT с MinGW. У меня есть заголовочные файлы в C:\MinGW\include\GL
, у меня есть 32-битные библиотеки в C:\MinGW\lib
и 64-битные библиотеки в C:\MinGW\lib\x64
, и у меня есть 64-битная freeglut.dll
в каталоге моего проекта. Однако даже самые простые программы OpenGL не могут успешно соединиться ...
Мой код минимален:
// test.cpp
#include <GL/glut.h>
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
}
И я скомпилирую его с точными командами, приведенными в файле readme / on. веб-сайт:
g++ -c -o test.o test.cpp -I"C:\MinGW\include"
g++ -o test.exe test.o -L"C:\MinGW\lib\x64" -lfreeglut -lopengl32 -Wl,--subsystem,windows
(за исключением, конечно, я изменил каталоги и изменил g cc на g ++)
Компиляция работает нормально, но компоновка выдает следующие сообщения об ошибках:
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: test.o:test.cpp:(.text+0x1c): undefined reference to `_imp____glutInitWithExit@12'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: test.o:test.cpp:(.text+0x3f): undefined reference to `_imp____glutCreateWindowWithExit@8'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: test.o:test.cpp:(.text+0x61): undefined reference to `_imp____glutCreateMenuWithExit@8'
collect2.exe: error: ld returned 1 exit status
Я пытался изменить -lopengl32
в команде на -lopengl64
и -lopengl
, но компоновщик не смог найти эти библиотеки.