ROS问题:#error This file requires compiler and library support for the ISO C++ 2011 standard.

        在解决了上面这篇博客ROS问题:Could not find a package configuration file provided by ......的问题之后,进行编译,结果出现了如下问题:

 即:


    In file included from /usr/include/c++/5/type_traits:35:0,
                 from /usr/include/gtest/gtest.h:59,
                 from /home/zydz/catkin_ws/src/navigation-melodic-devel/map_server/test/rtest.cpp:32:    
    /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
     #error This file requires compiler and library support \
      ^


分析:从所报的错误来看,是和map_server这个ROS包报的错误有关,从提示可知编译器要支持2011标准才可以,需要从编译器那里加上-std=c++11 or -std=gnu++11。因此就有了以下解决方案:

解决方案1:找到map_server这个ROS包里面的CMakeLists.txt文件,向其中添加如下代码:

SET(CMAKE_CXX_FLAGS "-std=c++0x")

解决方案2:

SET(CMAKE_CXX_FLAGS "-std=c++11 -O3")

解决方案3:

SET(CMAKE_CXX_FLAGS "-std=gnu++11")

解决方案4

add_compile_options(-std=c++11)

解决方案5

add_compile_options(-std=gnu++11)

        从以上方案任选一种,均能解决前面编译出现的报错。问题解决。

参考网址

Regex in C++: Requires compiler support error

猜你喜欢

转载自blog.csdn.net/JIEJINQUANIL/article/details/103464826
今日推荐