标题非常具有自我描述性。我已经下载了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。那我该如何启用呢?
答案 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