usr/bin/ld: cannot find XXX错误解决方法

转载自:http://blog.csdn.net/passionkk/article/details/46559169

通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误或者....so undefine xxxx,主要的原因是库文件并没有导入的ld检索目录中

     解决方式:

    1.  确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,那么可以通过sudo ln -sv lib123.so.1   lib123.so,建立一个连接重建lib123.so(快捷方式).

    2.  检查sudo gedit /etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入.

    3. sudo ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.

    4.  测试,sudo gcc -l123 --verbose.

我碰到的问题是:


在运行PL-SLAM时:

Linking CXX shared library ../lib/libplslam.so
/usr/bin/ld: 找不到 -lg2o_ext_csparse

也就是说找不到libg2o_ext_csparse.so库文件,确实在/usr/lib和/usr/local/lib/下都没找到这个G2O的库文件,但是找到个类似的libg2o_csparse_extension,所以我认为可能是因为g2o版本的问题,库的名称改了,所以需要建立这连个库文件的链接。

  cd /usr/local/lib/

  sudo ln -sv libg2o_csparse_extension.so libg2o_ext_csparse.so

果然可以在/usr/local/lib/文件夹下找到到 libg2o_ext_csparse.so这个快捷方式。然后一步一步按照上面做,效果突出,哈哈

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值