如果出现
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/XXXX.so', needed by 'XXXX'
一般是由于缺少动态链接库,或者动态链接库链接失败造成的。
1、首先,可以安装 apt-file 这个工具
sudo apt-get install apt-file
sudo apt-file update
然后,用 apt-file 查找一下包的依赖关系
sudo apt-file search libXXXXXXX.so # XXXXXXX换成对应提示的错误信息里的包名
然后,会看到一些安装包,示例如下
libopenni-dev: /usr/lib/libOpenNI.jni.so
libopenni-dev: /usr/lib/libOpenNI.so
libopenni0: /usr/lib/libOpenNI.jni.so.0
libopenni0: /usr/lib/libOpenNI.so.0
libopenni2-0: /usr/lib/libOpenNI2.so.0
libopenni2-dev: /usr/lib/libOpenNI2.so
然后,安装相应缺少的包即可。
2、如果要检查是否为链接本身出了问题,可以用如下命令查看
ls -n /usr/lib/x86_64-linux-gnu/libXXXXXXX.so
如果显示红色名称的一般是链接本身出了问题。可以删除文件,并且卸载相应的包后重新安装一下,这样就避免了自己手动去设置链接。
当然手动设置也是可以的,用如下命令
sudo ln -s /usr/lib/x86_64-linux-gnu/libXXXXXX.so /usr/lib/x86_64-linux-gnu/libXXXXXX.so.XXXX