GLFW 链接,未定义对 init 的引用

Posted

技术标签:

【中文标题】GLFW 链接,未定义对 init 的引用【英文标题】:GLFW linking, undefined reference to init 【发布时间】:2020-03-14 12:11:59 【问题描述】:

所以我试图编译一个简单的 GLFW 窗口应用程序,但遇到了链接器问题。

gcc -o bin/mtx_gui `pkg-config --libs glfw3 glew` src/main.c

我使用这个命令来编译单个 main。 pkg-config 扩展为 -L/usr/local/lib -lglfw3 -lGLEW -lGLU -lGL 应该编译所有内容。我检查了所有库都在他们应该在的地方。不知道为什么它没有链接它

main.c:(.text.startup+0x2): undefined reference to `glfwInit'

【问题讨论】:

尝试将 libs 规范移至命令末尾: gcc -o bin/mtx_gui src/main.c `pkg-config --libs glfw3 glew` . 尝试打开 /usr/local/lib/libglfw3.a 成功了,我只是在详细模式下运行它,看看它是否真的链接它。看起来它找到了库,但是你是对的...更改顺序有帮助.... 【参考方案1】:

首先,正如 G.M 在评论中指出的那样,main.c 位于所有库之前。第二也是最重要的。

-lglfw3 -lrt -lm -ldl -lpthread -lGL

Libpthread也必须链接,如果你打算使用opengl链接Libgl如上所示。

【讨论】:

以上是关于GLFW 链接,未定义对 init 的引用的主要内容,如果未能解决你的问题,请参考以下文章

将 newlib nano 与 arm-none-eabi gnu 工具链链接:未定义对 __libc_init_array 的引用

STM32 GNU ARM 链接器:使用 eclipse 对函数()的未定义引用

链接时如何解决 __gcov_init 未定义的引用问题

gcc 未定义对 `std::ios_base::Init::Init()' 的引用

对“demo_navdata_client_init”的未定义引用

dbus - 未定义的引用