- 系统:Ubuntu 16.94, PCL 1.9.1
- 在运行书《点云库PCL从入门到精通》第5章可视化中的程序时,编译通过后,在执行程序时,总是会出现:段错误 的情况
- 在搜寻了网上各种资料后,升级了 Qt, VTK 等的版本,还是没有解决,推测是因为 PCL 1.9 和 gc++ 版本冲突的问题
- 解决方法:安装 PCL 1.8.1
- 可以在不卸载之前原有的 PCL 1.9 的情况下,再安装一个 PCL 1.8.1 即可,参考教程:PCL库多版本共存问题
- 只要不与之前的 PCL 1.9 安装在同一个目录,应该不会冲突吧
- 安装完毕后,我发现我的 PCL 1.8.1 并没有安装在之前指定的 ~/pcl-1.8.1/install 目录,而是在下载的 pcl 文件那个目录,可以通过看 include 那些文件确定最后安装在哪个目录了
- 如下图,有 bin, include, lib, share 等文件夹在的,且 include 里面有 pcl-1.8 的,那么下图这个就是 pcl 的根目录
- 然后修改 CMakeLists.txt,将 find_package(PCL 1.2 REQUIRED) 改为:
# find_package(PCL 1.2 REQUIRED) # 注释掉该语句,加上下面两个语句
set(PCL_DIR ~/App/pcl1.8.1/share/pcl-1.8/PCLConfig.cmake)
find_package(PCL REQUIRED PATHS ~/App/pcl1.8.1 NO_DEFAULT_PATH)
- ~/App/pcl1.8.1 就是你自己安装 PCL 1.8.1 的目录
- 要先清除之前 catkin_make 在 PCL 1.9 下生成的 build 和 devel 文件夹,不然很可能会报错,然后再执行 catkin_make
- 这样就完成了,我还尝试了将 PCL 1.8 中的 Visualization 文件夹替换到 PCL 1.9 中,但是依旧还是会报段错误,所以猜测可能是库里面调用的其他库中的语句造成冲突