如何添加“-std = c + + 11”到由qmake生成的生成文件?

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

您可以将以下内容添加到C ++ 11的Qt .pro: –

 CONFIG += c++11 

从Qt 5.4开始,可以使用C ++ 14

 CONFIG += c++14 

您可以更改CXX标志:

 QMAKE_CXXFLAGS += -std=c++11 

我通常将其设置为:

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

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

 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 。 (也许在其他操作系统或操作系统版本上需要进行一些类似的更改。)

(类似的问题在1和2) 。

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

 CONFIG += c++11 

代替

 QMAKE_CXXFLAGS += -std=c++11 

后者根本不被承认。

 CONFIG += c++11 

在.pro文件中,在我的Ubuntu桌面上安装qt5-default之后,似乎可以用于Qt4 SDK:

 sudo apt install qt5-default 

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