Hor*_*ter 20 c++ mingw qt-creator c++11 qt5.1
当我使用VS 2010 在Qt Creator 2.8/Qt5.1下编译项目时,一切都很好.如果我对MinGW做同样的事情,我会收到以下错误.
error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
Run Code Online (Sandbox Code Playgroud)
我知道我需要启用C + 11,但CONFIG += console c++11我的.pro文件中有.这不是需要的吗?我究竟做错了什么?
当我看到制作时,我看到:
CXXFLAGS = -pipe -fno-keep-inline-dllexport -g -std=c++0x
Run Code Online (Sandbox Code Playgroud)
混淆,正如我在pro文件中说的c ++ 11.
qmake从头开始删除了所有内容,运行等,没有结果经过:
找到解决方案,但只能在一段时间内接受它:https://stackoverflow.com/a/19530028/356726
Hor*_*ter 10
好的,多亏了你的暗示我已经弄明白了.
在我从上面尝试了任何可能的建议后,仍然没有成功,我已经排除了我在项目中可以想到的任何子项目.最后我找到了一个没有CONFIG += c++11定义的QML样本.pro .
这导致了错误.因此根本原因不是我正在研究的项目,而是一个子项目,但是在同一步骤中编译了.
尝试更改说明的mkspecs/win32-g++/qmake.conf行:
QMAKE_CXXFLAGS_CXX11 = -std=c++0x
Run Code Online (Sandbox Code Playgroud)
至:
QMAKE_CXXFLAGS_CXX11 = -std=c++11
Run Code Online (Sandbox Code Playgroud)
并重新运行qmake.
一些额外的细节:
将"c ++ 11"功能添加到CONFIGqmake变量会导致mkspecs/features/c++11.prf文件被拉入(有关详细信息,请参阅qmake Advanced Usage文档的"添加新配置功能"部分).
qmake配置文件QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11在配置C++ 11支持的其他内容之间有一条线.因此,在CONFIG变量中添加"c ++ 11"是表明你希望c ++ 11支持c ++的正确方法,正如你在评论中提到的那样.
我正在使用Qt Creator 2.7.2,我的.pro文件中有这一行:
QMAKE_CXXFLAGS += -std=c++11
Run Code Online (Sandbox Code Playgroud)
这对你有用吗?