58

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

4

5 回答 5

76

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

CONFIG += c++11

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

CONFIG += c++14
于 2013-10-16T08:25:58.077 回答
23

您可以更改 CXX 标志:

QMAKE_CXXFLAGS += -std=c++11

我通常将其设置为:

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
于 2014-04-11T13:18:59.103 回答
22

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

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

(类似问题12。)

于 2014-05-12T17:31:10.433 回答
3

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

CONFIG += c++11

代替

QMAKE_CXXFLAGS += -std=c++11

后者根本不被认可。

于 2015-07-13T19:33:16.103 回答
0
CONFIG += c++11 

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

sudo apt install qt5-default

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

于 2016-09-09T06:21:40.737 回答