/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/
即可编译成功。