GLFW MinGW link error(GLFW MinGW 链接错误)
问题描述
我尝试用 C++ 测试 GLFW 已经有一段时间了,但一直有链接器问题.我对 C++ 还很陌生,虽然我有 Java 和 C# 方面的经验,但直接使用编译器对我来说还是很陌生的.这是我的设置信息.
I've been attempting to test out GLFW with C++ for quite a while and am having constant linker issues. I am fairly new to C++, although I have experience in Java and C#, working directly with the compiler is fairly new to me. Here's my setup information.
IDE:Qt Creator
IDE: Qt Creator
操作系统:Windows 7 64 位
OS: Windows 7 64-bit
编译器:MinGW32 4.8.1
Compiler: MinGW32 4.8.1
01:23:26: Starting: "C:MinGWinmingw32-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 库,但我无法让它们工作.
The code I'm testing is the code on the GLFW Documentation Page, I'm using my own build of GLFW, and have already tried this and several other potential solutions. I have tried using the prebuilt GLFW mingw libraries but I couldn't get them to work.
推荐答案
enhzflep 的解决方案是在编译时包含到 gdi32 库中,制作所有必要的链接器 -lglfw3 -lgdi32 -lopengl32
,作为缺失的方法,CreateDCW
、GetDeviceCaps
和DeleteDC
都在libgdi32.a
中的>MinGW
lib 文件夹 C:MinGWliblibgdi32.a
在这种情况下.
The solution as posted by enhzflep was to include to gdi32 library when compiling, making all the necessary linkers -lglfw3 -lgdi32 -lopengl32
, as the missing methods, CreateDCW
, GetDeviceCaps
and DeleteDC
are all inside of libgdi32.a
in the MinGW
lib folder C:MinGWliblibgdi32.a
in this case.
这篇关于GLFW MinGW 链接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:GLFW MinGW 链接错误
- 从python回调到c++的选项 2022-11-16
- 一起使用 MPI 和 OpenCV 时出现分段错误 2022-01-01
- STL 中有 dereference_iterator 吗? 2022-01-01
- 与 int by int 相比,为什么执行 float by float 矩阵乘法更快? 2021-01-01
- Stroustrup 的 Simple_window.h 2022-01-01
- 静态初始化顺序失败 2022-01-01
- 近似搜索的工作原理 2021-01-01
- 如何对自定义类的向量使用std::find()? 2022-11-07
- C++ 协变模板 2021-01-01
- 使用/clr 时出现 LNK2022 错误 2022-01-01