我下载了 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。那么我该如何启用它呢?
把这个加到你的 。专业档案
QMAKE_CXXFLAGS += -std=c++11
或者
CONFIG += c++11
根据 这个网站添加
到你的. pro 文件(见网页底部)
其他答案,暗示
QMAKE_CXXFLAGS += -std=c++11(或 QMAKE_CXXFLAGS += -std=c++0x)
QMAKE_CXXFLAGS += -std=c++0x
也与 Qt 4.8和 gcc/clang。一起工作
如果您正在使用早期版本的 QT (< 5) ,请尝试这样做
添加到您的 qmake 文件
QMAKE_CXXFLAGS+= -std=c++11 QMAKE_LFLAGS += -std=c++11
作为处理这两个案件的替代方案,阿里的回答非常出色,我经常补充说
# With C++11 support greaterThan(QT_MAJOR_VERSION, 4){ CONFIG += c++11 } else { QMAKE_CXXFLAGS += -std=c++0x }
我的项目文件。如果您不太关心团队中使用哪个 Qt 版本,但是您希望他们在任何情况下都启用 C + + 11,那么这可能很方便。
我唯一成功的地方就是通过搜索:
... 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