C ++ Qt - 如何将“-std = c ++ 11”添加到qmake生成的makefile中?

时间:2013-10-16 08:22:38

标签: qt c++11 makefile qmake

我正在Qt开发一个程序。它的makefile是从.pro文件自动生成的。我需要使用一些需要为g ++设置-std = c ++ 11标志的代码。我应该在.pro中添加这个标志? (只更改Makefile将不起作用,因为每次构建项目时它都会被新生成的文件覆盖)。

5 个答案:

答案 0 :(得分:76)

您可以将以下内容添加到Qt .pro for C ++ 11中: -

CONFIG += c++11

从Qt 5.4开始,可以使用

启用C ++ 14
CONFIG += c++14

答案 1 :(得分:23)

您可以更改CXX标志:

QMAKE_CXXFLAGS += -std=c++11

我通常把它设为:

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic

答案 2 :(得分:13)

您可能会发现插入特定标志(您提到的)

很有诱惑力
QMAKE_CXXFLAGS += -std=c++11
<。>在.pro文件中,但这将代表您插入该标志。

这还不够。正确的方法是插入

CONFIG += c++11
<。>在你的.pro文件中。然后由qmake进行两到三次必要的更改:

  1. -std=c++11已插入。
  2. -stdlib=libc++已插入。
  3. 如果您使用的是Mac,则-mmacosx-version-min=10.6会变为-mmacosx-version-min=10.7。 (或许在其他操作系统或操作系统版本上也需要进行类似的更改。)
  4. 12处的类似问题。)

答案 3 :(得分:3)

我使用Snow Leopad 10.6.8和gcc 4.9,我不得不使用

CONFIG += c++11

而不是

QMAKE_CXXFLAGS += -std=c++11

后者根本无法识别。

答案 4 :(得分:0)

CONFIG += c++11 
在我的Ubuntu桌面上安装qt5-default后,.pro文件中的

似乎对我有用Qt4 SDK:

sudo apt install qt5-default

无论如何,生成的makefile包含一个-std=c++0x选项,我怀疑它足以编译我的C ++ 11代码。