PCL库和C++2011兼容问题
来源:互联网 发布:js 将数组变为字符串 编辑:程序博客网 时间:2024/06/15 22:50
PCL库和C++2011兼容问题
首先,我的系统环境是ubuntu 14.04、ROS indigo。
做课题的时候遇到这么一个问题,我的wifi信号采集和制图的包用到了pcl_ros和pcl_conversions库,这两个库依赖了PCL库,然后和高斯库交互数据利用GPR(Gaussian Process Regression)的方法来处理wifi信号,在GPR库中用到了一些C++2011的特性,这样当我把两个包合起来的时候就遇到了一些问题。编译的时候通过了,但是运行的时候提示段错误:
Segmentation fault (core dumped)
google了一些,人们说是C++2011和PCL库在使用的时候会导致boost库冲突。以下是我的几次尝试:
尝试一
这个方法最后说是因为使用PCL-1.7库不支持C++2011所以需要安装PCL1.8,按照最后提示的,先下载库,然后在库的CMakeLists.txt文件添加了设置C++2011的变量SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")
,新建build目录
$ mkdir build$ cd build$ cmake ..$ make$ sudo make install
挺大的,编译完之后有6个多G,然修改你要用PCL的库指定为PCL 1.8 版本,然后再message里面你可以输出使用库的路径message(${PCL_DIR})
,这次尝试并没有解决这个问题。给作者库的作者发邮件,作者说PCL库目前不支持C++2011,就要在放弃之际,但是突然看到另一个人说的解决方法,然后接着尝试。
尝试二,根据尝试二是修改PCL库你的一行代码,具体大家看链接,但是我按步骤操作完,还是没有解决问题。意外之际看到了别人说用gdb调试,然后开始接着尝试。
尝试三,gdb ./path/executable_file
得到了如下提示:ImportError: No module named 'libstdcxx',
解决:在用户的主目录下新建文件.gdbinit,然后编辑内容如下:
pythonimport syssys.path.append("/usr/share/gcc-4.8/python")end
解决了这个问题之后继续调试,如下:
从途中可以看出来问题就出在最后一行,难道是还是调用的PCL-1.7的库,查看了一下库的路径,不是啊!然后继续google,看到有人说,如果编译的时候用到了C++2011,用Debug编译类型就会出现这个问题,如果用release编译就可以了,或者在Debug模式下用-O1选项来优化就可以了,具体如下:
改:set(CMAKE_BUILD_TYPE Debug)为:set(CMAKE_BUILD_TYPE Release)或:set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1")
这样,编译、运行的就没有问题了:
课题还在继续。。。后面发现问题我再接着补充!有不对的地方,希望大家能指出来!
参考:
https://github.com/felixendres/rgbdslam_v2/issues/8%20%E5%8E%9F%E5%9B%A0+%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95
https://github.com/PointCloudLibrary/pcl/issues/980
http://img.blog.csdn.net/20151231120056673
http://stackoverflow.com/questions/26346690/debug-seg-fault-in-boostmathlanczos-with-libpcl-surface
- PCL库和C++2011兼容问题
- Delphi和C的枚举兼容问题
- PCL和opencv库冲突解决办法
- pcl flan库和 opencv 冲突解决办法
- QT配置openni,opencv,g2o和pcl库
- object-c c++兼容问题
- boost静态链接库和c++/clr不兼容问题:未能加载文件或程序集,不是有效的Win32应用程序。
- pcl库的配置
- PCL库尝试
- PCL库学习
- PCL库简要说明
- PCL中的CAMERA_FRAME和LASER_FRAME
- 初识:pcl安装和配置
- PCL和MFC的融合
- PCL环境配置失败和运行PCL自带例子
- IE和FireFox兼容问题
- dwr和weblobic兼容问题
- hibernate2 和 3 兼容问题
- View too large to fit into drawing cache when calling getDrawingCache()
- subversion, 在windows上架设svn server,并创建repository
- windows下安装rabbitmq
- layoutSubviews总结
- UUId与keychain
- PCL库和C++2011兼容问题
- 锐捷认证成功但是无法上网的问题
- JMeter使用总结
- C语言创建二叉树过程中遇到的一些问题
- Linux:多个 jdk 的安装和管理 update-alternatives , 或 alternatives
- 迷宫问题
- 鲁迅:《在酒楼上》
- iOS开发 UICollectionView详解+实例
- 关于android中sharedpreferences数据不更新的问题