如何在Qt Creator中启用C ++ 11?

时间:2013-06-05 19:37:49

标签: c++ qt c++11

标题非常具有自我描述性。我已经下载了Qt Creator 2.7.0,我正在尝试编译一些基本的C ++ 11代码:

int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
  x *= 2;
}

我收到以下错误:

range based for loops are not allowed in c++ 98 mode

然而,根据this article,这个版本的Qt Creator支持C ++ 11。那我该如何启用呢?

6 个答案:

答案 0 :(得分:249)

根据this site添加

CONFIG += c++11

到你的.pro文件(参见该网页的底部)。 需要Qt 5.


其他答案,暗示

QMAKE_CXXFLAGS += -std=c++11(或QMAKE_CXXFLAGS += -std=c++0x

也适用于 Qt 4.8和gcc / clang。

答案 1 :(得分:30)

将此添加到 .pro文件

QMAKE_CXXFLAGS += -std=c++11

CONFIG += c++11

答案 2 :(得分:17)

作为处理Ali的优秀答案中解决的两种情况的替代方案,我通常会添加

# With C++11 support
greaterThan(QT_MAJOR_VERSION, 4){    
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}

到我的项目文件。如果您不太关心人们在您的团队中使用哪个Qt版本,但是您希望他们在任何情况下都启用C ++ 11,这可能很方便。

答案 3 :(得分:6)

添加到您的qmake文件

QMAKE_CXXFLAGS+= -std=c++11
QMAKE_LFLAGS +=  -std=c++11

答案 4 :(得分:3)

如果您使用的是早期版本的QT(< 5),请尝试使用

QMAKE_CXXFLAGS += -std=c++0x

答案 5 :(得分:0)

我成功实现这一目标的唯一地方是搜索:

  

... \ Qt的\ {5.9;或者您的版本} \ mingw {53_32;或者你的   版本} \ mkspecs \ Win32的克++ \ qmake.conf:

然后在这一行:

QMAKE_CFLAGS           += -fno-keep-inline-dllexport

编辑:

QMAKE_CFLAGS           += -fno-keep-inline-dllexport -std=c++11