LIO-SAM运行报错‘process has died’的终极解决方案:深入理解库路径问题
当你满怀期待地启动LIO-SAM,准备体验这个强大的激光惯性里程计和建图系统时,屏幕上突然跳出[lio_sam_imuPreintegration-2] process has died这样的错误信息,确实会让人心头一紧。这种报错在ROS Melodic环境下运行LIO-SAM时相当常见,尤其是对于刚接触ROS和SLAM的开发者来说。但别担心,这个看似棘手的问题,往往只需要一个简单的命令就能解决。
1. 问题现象与初步诊断
第一次遇到process has died报错时,大多数人的第一反应是程序崩溃了。实际上,这个错误信息表明ROS节点在启动后立即异常终止。在LIO-SAM的案例中,通常会看到两个关键节点同时报错:
[lio_sam_imuPreintegration-2] process has died
[lio_sam_mapOptmization-5] process has died
为什么会出现这种情况? 根本原因在于系统找不到程序运行所需的动态链接库libmetis.so。这个库是GTSAM(Georgia Tech Smoothing and Mapping库)的依赖项,而GTSAM又是LIO-SAM的核心组件之一。
当你在终端运行roslaunch lio_sam run.launch时,系统会按照以下顺序查找动态库:
- 编译时指定的RPATH
- LD_LIBRARY_PATH环境变量中的路径
- /etc/ld.so.cache中缓存的路径
- 默认路径(/lib和/usr/lib)
2. 问题根源:库文件位置错配
通过sudo make install安装GTSAM时,libmetis.so默认


6万+

被折叠的 条评论
为什么被折叠?



