/usr/bin/ld: cannot find -l(...XXX) 问题的解决办法


在ubuntu上安装软件时,经常出现这样的问题:

/usr/bin/ld: cannot find -l****

例如: 
/usr/bin/ld: cannot find -lcaffe 安装 需要caffe的相关软件 时出现 

 

这些问题都是因为找不到相应的lib文件,以上面的例子来说就是在系统中找不到libcaffe.so文件。

以libcaffe.so为例,我们先在系统中查找下该文件。命令为: 

locate libcaffe

结果显示如下: 

 

常用方法:

进入/usr/lib/x86_64-linux-gnu/目录中,新建一个libcaffe.so的软连接,使其链接到已有的libcaffe.so文件(如libcaffe.so.1)。

命令为: 

sudo ln -s libcaffe.so.1 libcaffe.so

可以在/usr/lib/x86_64-linux-gnu/目录中检查是否成功:

​​​​​​​ll libcaffe.so*

 

另外一种情况是,上述情况未报错,而是在编译自己工作空间时报的错,则需要在自己项目的CmakeLists.txt下写上:

link_directories(<path_to_caffe_installation_build_lib>)

<path_to_caffe_installation_build_lib>是指上面 locate 命令的libcaffe.so的路径,以上面的例子来说就是

/home/onyxia/caffe/.build_release/lib/

即可编译成功。 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM