如何在Qt Creator中启用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
然而,根据这篇文章,这个版本的Qt Creator支持C ++ 11。 那么如何启用它?
根据这个网站添加
CONFIG += c++11
到您的.pro文件(请参阅该网页的底部)。 它需要Qt 5。
其他答案,build议
QMAKE_CXXFLAGS += -std=c++11
(或QMAKE_CXXFLAGS += -std=c++0x
)
也使用Qt 4.8和gcc / clang。
将此添加到您的.pro文件
QMAKE_CXXFLAGS += -std=c++11
要么
CONFIG += c++11
作为处理阿里杰出答案中的两个案件的替代scheme,我通常补充说
# With C++11 support greaterThan(QT_MAJOR_VERSION, 4){ CONFIG += c++11 } else { QMAKE_CXXFLAGS += -std=c++0x }
到我的项目文件。 当你不太在意团队中使用的是哪个Qt版本时,这可能会很方便,但是你希望他们在任何情况下都启用C ++ 11。
添加到您的qmake文件
QMAKE_CXXFLAGS+= -std=c++11 QMAKE_LFLAGS += -std=c++11
如果您正在使用QT的早期版本(<5),请尝试此操作
QMAKE_CXXFLAGS += -std=c++0x
我成功地使它工作的唯一地方是通过search… \ Qt \ {5.9; 或者你的版本} \ mingw {53_32; 或您的版本} \ mkspecs \ win32-g ++ \ qmake.conf:
然后在这行:QMAKE_CFLAGS + = -fno-keep-inline-dllexport
编辑:QMAKE_CFLAGS + = -fno-keep-inline-dllexport -std = c ++ 11
效果立竿见影! 🙂