ROS初学笔记 - C++11与PCL库冲突问题
生活随笔
收集整理的這篇文章主要介紹了
ROS初学笔记 - C++11与PCL库冲突问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者: zhch_pan
原文鏈接:https://www.cnblogs.com/zhchp-blog/p/7249487.html/
出處: 博客園
轉載說明:如有侵權,請聯系我刪除,謝謝!
ROS版本為indigo,PCL庫版本 1.7,gcc版本是5.4.0(gcc只有4.7及以上的版本才支持c++11的編譯格式)
如果代碼里有c++11格式的語句,比如:
則在編譯的時候,應在CMakeLists.txt中加入
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")段錯誤(核心已轉儲) segmentation fault (core dumped)
例如我遇到的一個情況:
在一個ROS-package中,因為要對點云進行濾波操作(Removing outliers using a Conditional or RadiusOutlier removal),新建remove_outliers.cpp,其中包含頭文件
#include <pcl/filters/radius_outlier_removal.h> #include <pcl/filters/conditional_removal.h>同時我的CMakeLists.txt中之前設置了編譯格式為支持c++11(
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")),
使用catkin_make編譯通過后,一旦rosrun該節點,直接出現“段錯誤(核心已轉儲)”,去掉這倆頭文件,便可以正常運行節點,但是也無法做濾波了。
解決方案:
同一個workspace下,創建一個新的功能包,單獨編譯該濾波node.
同時 新建pkg 的CMakeLists.txt保留默認格式(不使用C++11)
總結
以上是生活随笔為你收集整理的ROS初学笔记 - C++11与PCL库冲突问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网软件IoT.js、JerryScr
- 下一篇: ROS消息格式-vision_msgs/