Ошибка ссылки GLFW MinGW
Я пытался протестировать GLFW с C++ довольно долго, и у меня возникают постоянные проблемы с компоновщиком. Я довольно новичок в C++, хотя у меня есть опыт работы в Java и c#, работа непосредственно с компилятором довольно нова для меня. Вот моя информация о настройке.
язь: в Qt Творца
ОС: Windows 7 64-бит
Компилятор: MinGW32 4.8.1
01:23:26: Starting: "C:MinGWbinmingw32-make.exe"
C:/MinGW/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'A:/workspace_cpp/Test-Debug'
g++ -Wl,-subsystem,console -mthreads -o debugTest.exe debug/main.o -lglfw3 -lopengl32
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libglfw3.a(win32_monitor.c.obj):win32_monitor.::(.text+0x2c7): undefined reference to `CreateDCW@16'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x358): undefined reference to `GetDeviceCaps@8'
Makefile.Debug:77: recipe for target 'debugTest.exe' failed
mingw32-make[1]: Leaving directory 'A:/workspace_cpp/Test-Debug'
Makefile:34: recipe for target 'debug' failed
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libglfw3.a(win32_monitor.c.obj):win32_monitor.c:(.text+0x370): undefined reference to `GetDeviceCaps@8'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libglfw3.a(win32_monitor.c.obj):win32_monitor .c:(.text+0x39e): undefined reference to `DeleteDC@4'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libglfw3.a(win32_monitor.c.obj): bad reloc address 0x20 in section `.eh_frame'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
код, который я тестирую, - это код на страница документации GLFW, Я использую моя собственная сборка GLFW, и уже пробовали это и несколько других потенциальных решений. Я пробовал использовать готовые библиотеки GLFW mingw, но я не мог заставить их работать.
1 ответов
решение, опубликованное enhzflep, должно было включать в библиотеку gdi32 при компиляции, делая все необходимые компоновщики -lglfw3 -lgdi32 -lopengl32
, как недостающие методы,CreateDCW
, GetDeviceCaps
и DeleteDC
- все внутри libgdi32.a
на MinGW
папку lib C:\MinGW\lib\libgdi32.a
в этом случае.