Cmake不会将编译器标准设置为c ++ 11吗? [英] Cmake won't set the compiler standard to c++11?

查看:428
本文介绍了Cmake不会将编译器标准设置为c ++ 11吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是cmake的新手,我正在用它构建一些c ++ 11代码(特别是一组模板别名。)我想使用 CXX_STANDARD 属性有望覆盖所有平台和问题,只需将-std = c ++ 11添加到cxxflags就可以了

I'm new to cmake, and I was building some c++11 code with it (notably a set of template aliases.) I want to use the CXX_STANDARD property to hopefully cover all platforms and problems introduced by simply adding -std=c++11 to cxxflags, which worked for me before:

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

但是当我将其更改为

set_property(GLOBAL PROPERTY CXX_STANDARD 11)
set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED true)

cmake不会告诉编译器使用c ++ 11。后面的代码我在做什么?

cmake doesn't tell the compiler to use c++11. What am I doing wrong with the latter code?

推荐答案

CMAKE_CXX_STANDARD不是全局属性,而是变量。
http://www.cmake .org / cmake / help / v3.1 / variable / CMAKE_CXX_STANDARD.html#variable:CMAKE_CXX_STANDARD

CMAKE_CXX_STANDARD is not a global property, but a variable. http://www.cmake.org/cmake/help/v3.1/variable/CMAKE_CXX_STANDARD.html#variable:CMAKE_CXX_STANDARD

所以您所需要的只是

set( CMAKE_CXX_STANDARD 11 )

在定义任何目标之前。

这篇关于Cmake不会将编译器标准设置为c ++ 11吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆