You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么系统存在/usr/lib/libglfw.so.3时ld仍无法找到glfw3库?

问题原因说明
  • 首先是GCC调用链接器ld的-l参数默认规则:当使用-l<库名缩写>格式时,链接器会自动在系统库搜索路径中查找名称为lib<库名缩写>.so(动态库)或lib<库名缩写>.a(静态库)的文件。
    你最初使用-lglfw3参数时,链接器会尝试查找libglfw3.so文件,但Arch Linux的glfw-x11包安装的动态库文件名为libglfw.so,无3后缀,因此匹配失败抛出错误。
  • -l:libglfw.so.3可成功运行的原因:-l:是链接器提供的特殊语法,该参数后不需要填写缩写,直接传入完整的库文件名即可,你系统中存在libglfw.so.3软链接,因此可以直接匹配到对应库文件。
  • -lglfw可成功运行的原因:完全符合-l参数的默认匹配规则,链接器可以直接找到系统中存在的libglfw.so软链接,完成链接流程。

额外说明:glfw-x11包对应的是GLFW 3.x版本,发行版打包时仅在头文件路径、CMake配置文件、pkg-config文件名中添加了3后缀用于和旧的GLFW 2.x版本做区分,动态库文件没有添加额外后缀,因此不会出现libglfw3.so文件。

内容的提问来源于stack exchange,提问作者Teles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:57:03