一桩动态库链接错误引发的血案
之前写过一篇PCL安装的博文,原本以为驾轻就熟,谁曾想,竟然也翻了车。
pcl make怎么都不给过,提示:
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libGL.so', needed by'***'
中文提示是:make: *** 没有规则可以创建“XXX.o”需要的目标“***”。 停止
这是由于动态库链接中断造成的,我们在相应的文件目录下看看该文件的状态
cd /usr/lib/x86_64-linux-gnu/
然后发现,libGL.so文件是存在的。这里,用ls查看本目录下的所有文件,会发现libGL.so文件名是红的,
这也是其链接断开的表现,右键其属性发现显示为链接中断。
如何恢复呢?首先,要知道它正确的链接方式的什么,我在另一台pcl可用的电脑上查看
wrx@wrx:/usr/lib/x86_64-linux-gnu$ ls -l libGL.so
lrwxrwxrwx 1 root root 14 5月 10 20:17 libGL.so -> libGL.so.1.0.0
由此可见,libGL.so正确的链接方式是与libGL.so.1.0.0链接,但其实这里我并不知道这个文件在哪里,所以要先用全局搜索找到其所在目录:
sudo find / -iname "*libGL.so*"
注意,如果这里提示
**find: ‘/run/user/1000/gvfs’: Permission denied**
sudo不管用,甚至用root权限也没用,