鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    C++ versions

    已定时 已固定 已锁定 已移动
    动手学ROS2
    c++ versions c++14
    2
    2
    175
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 2
      2251752108
      最后由 编辑

      /usr/include/gtest/internal/gtest-port.h:279:2: error: #error C++ versions less than C++14 are not supported.
      279 | #error C++ versions less thanC++14 are not supported.
      | ^~~~~
      如何检测C++版本

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        当您遇到这样的编译错误时,表明您正在使用的编译器设置或者环境不支持C++14或更高版本。Google Test(gtest)库要求至少使用C++14标准。要解决这个问题,您需要确保您的编译器设置为使用C++14或更高版本。以下是如何检测和设置C++版本的一些方法:

        1. 检测当前使用的C++版本

        要检测您的编译器当前使用的C++标准版本,您可以编写一个简单的C++程序,使用预定义的宏来输出版本信息。例如:

        #include <iostream>
        
        int main() {
            #if __cplusplus == 201103L
                std::cout << "C++11" << std::endl;
            #elif __cplusplus == 201402L
                std::cout << "C++14" << std::endl;
            #elif __cplusplus == 201703L
                std::cout << "C++17" << std::endl;
            #elif __cplusplus == 202002L
                std::cout << "C++20" << std::endl;
            #else
                std::cout << "Unknown C++ version" << std::endl;
            #endif
            return 0;
        }
        

        编译并运行这个程序,它将输出当前编译器使用的C++标准版本。

        2. 设置C++版本

        如果您的编译器支持C++14或更高版本,但当前没有使用,您需要在编译时指定正确的标准。这通常可以通过编译器选项来完成。

        对于GCC和Clang:

        使用 -std=c++14 或 -std=c++17 等选项。例如:

        g++ -std=c++14 your_program.cpp -o your_program
        

        或者如果您使用的是CMake,可以在CMakeLists.txt文件中设置:

        set(CMAKE_CXX_STANDARD 14)
        set(CMAKE_CXX_STANDARD_REQUIRED ON)
        

        对于MSVC(Microsoft Visual C++):

        通常,从Visual Studio 2015开始,默认支持C++14。但如果您需要显式指定,可以在项目属性中设置C++语言标准为ISO C++14 Standard (/std:c++14)。

        3. 更新或配置您的开发环境

        如果您发现您的编译器不支持C++14,您可能需要更新您的编译器到一个更新的版本,或者配置您的开发环境以使用支持C++14的编译器。

        结论

        确保您的编译器设置正确,使用支持C++14或更高版本的编译选项,这通常是解决此类编译错误的关键。如果问题依旧存在,检查您的开发环境配置或寻求特定于您使用的编译器或IDE的帮助。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 第一个帖子
          最后一个帖子
        皖ICP备16016415号-7
        Powered by NodeBB | 鱼香ROS