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 对函数()的未定义引用
gcc 未定义对 `std::ios_base::Init::Init()' 的引用