ROS melodic 使用C++17新特性

最近编译一个代码,需要使用C++17新特性filesystem,但是需要gcc8以上的版本才支持,所以额外安装了gcc-9.1.0

装完之后发现,系统版本的gcc变成了9.1.0,而ros编译怎么都还是7.5.0

然后强行改/usr/bin/gcc和g++链接,让ros编译变成了9.1.0

成功编译后又发现,之前编译的gtsam等库用的是7.5.0,所以又把这些库全部重新编译了一遍

当以为一切都能成功之后,结果之前好好的代码现在一跑就崩,一番操作全部白给

然后又把环境全部还原了。。。。

后续准备尝试一下把ros卸载了重新在gcc-9下安装,不知道这样行不行……

----------------------------分割线----------------------------------------------------

无意中发现一个编译选项,百度半天都搜不到的

catkin_make -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=gcc-9

----------------------------分割线---------------------------------------------------

目前解决这个问题了,因为想尝试removert这个工程,所以编译得用到C++17 gcc得8以上的版本

我的环境是Ubuntu18.04 ros melodic

系统默认的gcc是7.5

首先安装 gcc-8 和g++8

sudo apt-get install gcc-8 g++8

然后编译的时候用下面的指令就行:

catkin_make -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8

posted @ 2020-12-21 09:48  Xiangzh  阅读(816)  评论(0编辑  收藏  举报