作者: zhch_pan
原文链接:https://www.cnblogs.com/zhchp-blog/p/7249487.html/
出处: 博客园
转载说明:如有侵权,请联系我删除,谢谢!

  1. ROS版本为indigo,PCL库版本 1.7,gcc版本是5.4.0(gcc只有4.7及以上的版本才支持c++11的编译格式)

  2. 如果代码里有c++11格式的语句,比如:

for (auto p:cloud.points)
{// 将点云里的点插入到octomap中tree.updateNode( octomap::point3d(p.x, p.y, p.z), true );
}

则在编译的时候,应在CMakeLists.txt中加入

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  1. 经过测试,非ROS工作空间中,使用cmake … / make 方式编译,编译格式是否为c++11与pcl并没有冲突,但是如果在ROS工作空间中,用catkin_make编译时,如果编译格式设置为c++11,则有些用到pcl的时候会出现报错:

段错误(核心已转储) 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库冲突问题相关推荐

  1. 【ROS学习笔记】11.服务数据(srv)的定义与使用

    基于B站ROS公开课:[古月居]古月·ROS入门21讲 基于Ubuntu 20.04.1.Noetic版本 修正错误,并详述Python版本部署 文章目录 1 模型图 2 创建功能包 3 自定义服务数 ...

  2. [转载] PCL库相关资源的查找和使用Tip

    前言 学习PCL库的两个月左右时间里,从刚开始的无从下手到慢慢地摸清一些门道,走了很多弯路,也遇到过很多困惑,逐渐有了一些如何查找与利用PCL库学习资源的心得.所以把这些心得记录下来,一是为了给自己以 ...

  3. ROS下使用PCL库教程

    ros下使用PCL教程 ROS下使用PCL步骤 1. 创建工作空间 2. 创建ROS包 3. 创建代码ROS代码框架 4. 配置CMakeLists.txt文件 5. 从PCL教程中下载pcl处理代码 ...

  4. ROS笔记(11) Qt工具箱

    ROS笔记(11) Qt工具箱 1. 简介 2. 日志输出 3. 计算图可视化 4. 数据绘图 5. 参数动态配置 1. 简介 为了方便可视化调试和显示 ROS针对机器人开发提供了一个基于Qt架构的图 ...

  5. CMake初学笔记(一)

    CMake初学笔记(一) CMake是什么 CMake怎么实现跨平台 CMake具体实践过程 CMakeLists.txt编写快速入门 常见函数 例子 CMake是什么 跨平台编译工具,为了实现&qu ...

  6. ROS学习笔记(八): ROS通信架构

    ROS学习笔记(八): ROS通信架构 文章目录 01 Node & Master 1.1 Node 1.2 Master 1.3 启动master和node 1.4 rosrun和rosno ...

  7. ROS学习笔记(一)补充篇 参考创客制造

    我将ROS的CPP部分分成7个部分: 1.基础的node param 2.动态调节参数 3.关于TF变换 4.actionlib 5.插件技术 6.movebase 7.nodelet技术 前言 相比 ...

  8. CMake结合PCL库学习(2)

    紧接着上一篇文章 对于PCL 库中的各个模块之间是有相互依赖关系的 其中Common模块是最基础的模块,其中是定义各种数据结构的头文件,所以Common这个模块是不需要依赖性响的,但是IO 模块就是需 ...

  9. Convert PLY to VTK Using PCL 1.6.0 or PCL 1.8.0 使用PCL库将PLY格式转为VTK格式

    PLY格式是比较流行的保存点云Point Cloud的格式,可以用MeshLab等软件打开,而VTK是医学图像处理中比较常用的格式,可以使用VTK库和ITK库进行更加复杂的运算处理.我们可以使用Par ...

最新文章

  1. function java_java.util.function之function
  2. nyoj - 947(Max Xor)字典树
  3. 【dfs】树(jzoj 2753)
  4. python怎么重复输出_如何根据输出在Python中重复函数?
  5. C++ STL list输出和增加
  6. 模拟——扫雷游戏(洛谷 P2670)
  7. Android---真机调试时不能识别手机的解决方案
  8. 【Matlab学习笔记】【数学形态学】数字图像处理(MATLAB版)冈萨雷斯第九章学习笔记
  9. M1 Mac YYKit 报错
  10. 一卡通(M1卡)破解过程记录——理论篇
  11. Android启动活动用什么方法,Android - 使用intent uri从命令行启动活动
  12. 【vue】Element Calendar 组件显示农历及节日
  13. WPF的TextBox抛出InvalidOperationException异常:Cannot close undo unit because no opened unit exists.
  14. qt开发是使用QT creator 还是用VS+qt?
  15. html文字居中加下划线,HTML文字对齐,斜体,下划线和删除线
  16. 【SpringBoot】51、Spring-Boot-Admin搭建服务监控系统
  17. PSPad v4.5.3(2295) Beta
  18. 档案信息管理系统设计与实现(vue + java +Ajax)
  19. Python编程:从入门到实践_动手试一试答案
  20. 如何挖掘和布局关键词

热门文章

  1. 2010年写给自己的一封信
  2. 牛客网(剑指offer) 第十五题 反转链表
  3. [Python人工智能] 五.Tensorboard可视化基本用法及绘制整个神经网络
  4. iOS之深入解析Runtime的objc_msgSend“慢速查找”底层原理
  5. 【数据结构与算法】之深入解析“两个数组的交集”的求解思路与算法示例
  6. 2013\National _C_C++_A\1.填算式
  7. Counterfeit Dollar
  8. 微信小程序 setData动态设置数组中的数据
  9. 【机器视觉】 dev_set_lut算子
  10. 【Qt】2D绘图之窗口-视口转换