如何添加“-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
做了两三次必要的修改:
- 插入
-std=c++11
。 - 插入
-stdlib=libc++
。 - 如果你在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代码。