/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/

即可编译成功。 

posted @ 2019-07-20 19:38  龙雪  阅读(3881)  评论(0编辑  收藏  举报