GLFW MinGW 链接错误

GLFW MinGW link error

本文关键字:错误 链接 MinGW GLFW      更新时间:2023-10-16

我一直在尝试用C++测试 GLFW 很长一段时间,并且经常遇到链接器问题。我对C++相当陌生,虽然我有 Java 和 C# 方面的经验,但直接使用编译器对我来说是相当新的。这是我的设置信息。

IDE:Qt Creator

操作系统: 视窗 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 库,但我无法让它们工作。

enhzflep 发布的解决方案是在编译时包含到 gdi32 库中,使所有必要的链接器-lglfw3 -lgdi32 -lopengl32,因为缺少的方法、CreateDCWGetDeviceCapsDeleteDC 都在libgdi32.aMinGW lib 文件夹中C:MinGWliblibgdi32.a在这种情况下

相关文章: