cmake c++11支持

一, 通用范式

cmake_minimum_required(VERSION 2.8)

project (hello_cpp11)

# 检查c++编译器标志,设置c++11支持变量
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()

add_executable(hello_cpp11 main.cpp)

二, 使用CMAKE_CXX_STANDARD变量

 cmake 3.1版本后才有的特性

cmake_minimum_required(VERSION 3.1)

project (hello_cpp11)

# 设置C++标准为 C++ 11
set(CMAKE_CXX_STANDARD 11)

add_executable(hello_cpp11 main.cpp)

三, 使用自动推断方式

 cmake 3.1版本后才有的特性

cmake_minimum_required(VERSION 3.1)

project (hello_cpp11)

add_executable(hello_cpp11 main.cpp)

# 使用自动推断的方式选择合适的c++标准
target_compile_features(hello_cpp11 PUBLIC cxx_auto_type)

message("List of compile features: ${CMAKE_CXX_COMPILE_FEATURES}")

原文地址:https://www.cnblogs.com/svenzhang9527/p/10704718.html

时间: 2024-10-01 00:38:16

cmake c++11支持的相关文章

Android官方入门文档[11]支持不同平台版本

Android官方入门文档[11]支持不同平台版本 Supporting Different Platform Versions支持不同平台版本 This lesson teaches you to1.Specify Minimum and Target API Levels2.Check System Version at Runtime3.Use Platform Styles and Themes You should also read?Android API Levels?Androi

mac ios的c++11支持的问题

CXXFLAGS += -std=c++11 -stdlib=libc++ LDFLAGS +=  -lc++ 是谁写的LDFLAGS也要用-std=c++11的,害的我调试了几个小时,就为了定位这一个问题 题外话:自带的libstdc++还没有支持c++11,所以要用激进派的libc++

关于怎么在IDE当中开启C++11支持

C++11是在2011年8月12日公布,此次标准为C++98发布后13年来第一次重大修正,所以请注意这个标准发布的时间是在2011年下半年,所以你的IDE或者compiler的发布时间是在此之前,比如VS2010,codeblocks 10.05版本,那很不好意思,你的IDE和compiler需要重新下载,时间最好是2013-2017年发布的IDE和compiler,因为C++11标准提出来不久,各大编译器开发研究团队需要一定的时间来开发,所以越新的编译器,支持C++11程度越好. 至于用什么I

为 Notepad++ 编译 C++ 提供 C++11支持

怎样配置环境可以参考 他人的博客 可是这篇博客中没有提到 C++11 标准的问题, 而我经常使用 C++11 的一些特性, 比如移动语义, 移动构造什么的, 这就蛋疼了. google 了相关内容, 可是一无所获, SO 里也没有, 直到我在贴吧看到了一个贴 怎样支持 c11 于是我就照猫画虎, 把编译命令改为了: cmd /k g++  -std=c++11 -o $(CURRENT_DIRECTORY)\$(NAME_PART).exe "$(FULL_CURRENT_PATH)"

Cmake 如何看 支持不支持 http https

1 sudo apt-get install build-essential pkg-config  libwxgtk2.8-dev libftdi-dev freeglut3-dev  zlib1g-dev libusb-1.0-0-dev  libdc1394-22-dev libavformat-dev libswscale-dev  lib3ds-dev libjpeg-dev libgtest-dev libeigen3-dev

VS2010编译器工具cl对c++11标准支持情况测试

本文探讨了VS2010编译工具cl对C++11标准的支持情况,提供了利用C++11新特性的两段代码来进行测试,并同g++ 4.9.3编译器的编译情况相对比.总的说来:VS2010的编译器工具cl部分支持了C++11标准,而g++ 4.9.3则全部支持C++11标准.虽然现在已出现了C++14等新的标准,但熟悉了C++11标准的支持情况有利于我们正确选用符合自己需要的编译工具. 1. 问题产生 一个月前由于编写算法的而使用C++语言,看了一些英文版的算法设计和分析书.一个偶然的机会发现了C++11

转:linux下安装或升级GCC4.8,以支持C++11标准

转:http://www.cnblogs.com/lizhenghn/p/3550996.html C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充.随后各编译器厂商都各自实现或部分实现了C++中的特性. 如需查看各编译器对C++11的支持程度,请参看文章: 本文主要介绍在Linux系统下,如何升级GCC以支持C++11.目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本.  本文使用操作系统:C

make makefile cmake qmake都是什么,有什么区别

原文:https://www.zhihu.com/question/27455963 作者:玟清链接:https://www.zhihu.com/question/27455963/answer/36722992来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. make 是用来执行Makefile的2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执

使用xmake检测编译器特性支持

如果我们要写跨平台的c/c++代码,很多时候需要处理由于不同编译器对c/c++各个标准支持力度不同导致的兼容性问题,一般通常的解决办法是:自己在代码中通过宏去判断各个编译器的版本.内置宏.标准库宏.__has_feature等来检测处理. 自己如果在代码中按上述的方式检测,会很繁琐,尤其是像c++这种存在大量语法特性,如果一一检测过来,工作量是非常大的. 通过构建工具预先检测编译特性 另外比较省事的方式,就是依赖构建工具提前做好检测,然后把检测结果作为宏添加到编译中去,这样代码只需要判断对应的特