- 启动moveit配置助手时出错:
/opt/ros/melodic/lib/moveit_setup_assistant/moveit_setup_assistant: error while loading shared libraries: libmoveit_rdf_loader.so.1.0.4: cannot open shared object file: No such file or directory
REQUIRED process [moveit_setup_assistant-2] has died!
process has died [pid 8190, exit code 127, cmd /opt/ros/melodic/lib/moveit_setup_assistant/moveit_setup_assistant __name:=moveit_setup_assistant __log:=/home/houguowei/.ros/log/33aecc24-cb48-11ea-8ca6-b025aa31a881/moveit_setup_assistant-2.log].
log file: /home/houguowei/.ros/log/33aecc24-cb48-11ea-8ca6-b025aa31a881/moveit_setup_assistant-2*.log
Initiating shutdown!
- 问题原因:
原因一般有二, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.
另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.本问题的原因是安装的libmoveit_rdf_loader.so.版本是1.0.4,需要的版本是1.0.2。
- 解决办法:
1.如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:
sudo cat /etc/ld.so.conf
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf"
sudo ldconfig
2.两个库文件之间做一个链接:
sudo ln -s /opt/ros/melodic/lib/libmoveit_rdf_loader.so.1.0.2 /opt/ros/melodic/lib/libmoveit_rdf_loader.so.1.0.4
完成,解决问题。