cmake 指定--std 版本

创建日期: 2023-05-26 15:22 | 作者: 风波 | 浏览次数: 14 | 分类: CMake

方法一:cmake 增加 --std=c++11 选项

SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

方法二:新版本 cmake

增加如下配置

SET (CMAKE_CXX_STANDARD 11)

注意⚠️:这种方式仅适用于cmake3.1之后

方法三:更复杂的方式

全局

set (CMAKE_CXX_STANDARD 11)

注意:这种方式仅适用于cmake3.1之后

老版本

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
        message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()

根据Target设置

set_property(TARGET tgt PROPERTY CXX_STANDARD 11)

注意:这种方式仅适用于cmake3.1之后

来源:https://blog.csdn.net/mimiduck/article/details/111869968

14 浏览
0 评论