仅作为学习记录
1:报错:error: ‘optional’ in namespace ‘std’ does not name a template type
std::optional是C++17中专有的,在C++14中,optional是在experimental里面
修改:直接在CMakeLists.txt文件中设置为C++17即可:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
2:报错:error: template placeholder type ‘const Box<...auto...>’ must be followed by a simple declarator-id
ROS Noetic默认使用gazebo 11,在该版本中ignition::math::Box模板被ignition::math::AxisAlignedBox所取代,因此直接在出错的代码文件中进行替换即可。
经验之谈:一旦在编译过程中,出现一连串的错误,并且集中在在各个头文件和源文件中时,大概率是C++版本问题,修改适合的版本即可解决问题(不是由C++版本引起的问题除外)
未完待续。。。。