Linux 编译 /usr/bin/ld: cannot find -lxxx总结

末蓝、 2022-05-25 04:47 270阅读 0赞

在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:
/usr/bin/ld: cannot find -lxxx

lxxx会随着编译不同类型的source code而变化,比如编译IPP时,出现为/usr/bin/ld:cannot find -lippcore_t
这表示缺少ippcore_t.a这个库。

出现这样的原因有以下三种情况:

  1. 系统没有安装需要的库文件
  2. 库版本不对应
  3. 库文件链接错误
  4. 库文件路径设置错误

解决的方法:

  1. 先判断磁盘中是否存在对应的库,没有纯在的话,安装对应的库即可。
  2. 已经存在则判断是否程序库文件路径设置错误
    如果是库文件路径引起的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在的目录写进去,然后再终端输入ldconfig更新缓存.
  3. 如果不是通过find或者locate指令定位到链接文件,查看链接文件是否指向了希望的lib,如果不是,用In -sf */libxxx.so.x */libxxx.so指令修改它。

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读