Eclipse Oxygen搭配MinGW无法链接GLFW库问题求助
嘿,我刚看完你的问题,这事儿我之前也踩过坑——你是把库文件的完整路径直接塞给链接器了,这才导致ld报错的。咱们一步步来把配置弄对:
解决Eclipse Oxygen中GLFW库链接失败的问题
首先先理清楚你手里三个库文件的作用,别搞混了:
glfw3.dll:这是运行时动态链接库,程序跑起来的时候才需要它,编译链接阶段不用直接指定它libglfw3.a:这是静态链接库,编译时会把GLFW的代码直接打包进你的程序,之后运行不需要dlllibglfw3dll.a:这是动态链接的导入库,编译链接时用它来关联glfw3.dll,最终运行还是离不开dll文件
接下来是Eclipse里的正确配置步骤:
第一步:设置库的搜索路径
- 右键你的项目 → 选择
Properties→ 展开C/C++ Build→ 点击Settings - 切换到
Tool Settings标签页,找到MinGW C++ Linker下面的Libraries选项 - 在
Library search path (-L)区域点击Add,选择你的GLFW库所在的文件夹(比如你这里的C:/Users/leobr/Desktop/glfw-3.2.1.bin.WIN64/lib-mingw-w64/),记得选对File system来确认路径
第二步:添加要链接的库名称
还是在Libraries页面的Libraries (-l)部分:
- 如果想静态链接:直接添加
glfw3就行(不用加lib前缀和.a后缀,链接器会自动去找libglfw3.a) - 如果想动态链接:添加
glfw3dll(同样不用前缀后缀,链接器会匹配libglfw3dll.a)
第三步:处理运行时的dll文件
不管选哪种链接方式,glfw3.dll都得放到程序能找到的地方:
- 最简单的办法:把
glfw3.dll复制到你项目的Debug或者Release输出文件夹里(就是生成exe的那个文件夹) - 也可以把dll所在的路径添加到系统的
PATH环境变量里,这样系统全局都能找到它
为啥你之前会报错?
看你的错误信息cannot find -lC:/Users/leobr/Desktop/.../glfw3.dll,问题出在你把完整的dll文件路径直接填到了-l参数里——-l后面应该跟库的名称(不带前缀后缀),而文件路径是要单独通过-L参数来指定的,链接器会自动在-L指定的路径里找对应的库文件。
内容的提问来源于stack exchange,提问作者Leo Brown
相关产品推荐
相关产品推荐

