我使用了Qt 5.7和gcc 4.9.2。 Qt Core模块抛出Qt requires C++11 support
错误。
gcc 4.9.2无法编译Qt。
所以我安装了gcc 4.8。我在终端上使用以下命令检查:
$ g++ --version
g++ (Ubuntu 4.8.4-1ubuntu15) 4.8.4
我的工具包使用cmake而不是qmake。我将TARGET_LINK_LIBRARIES ( xxxx yyyy /usr/bin/c++ -std=c++11
添加到CMakeLists-txt。
我重新启动电脑并再次运行我的应用程序。抛出相同的错误。
/opt/Qt/5.7/gcc_64/include/QtCore/qbasicatomic.h:61: error: #error "Qt requires C++11 support"
# error "Qt requires C++11 support"
^
我该如何解决?
答案 0 :(得分:0)
明确地启用c ++ 11:
set(CMAKE_CXX_FLAGS "-std=c++11" CACHE STRING "compile flags" FORCE)
声明之后project(...)
。add_library(MyLib SHARED ${PROJECT_HEADERS} ${PROJECT_SOURCES})
...
set_property(TARGET MyLib PROPERTY CXX_STANDARD 11)
set_property(TARGET MyLib PROPERTY CXX_STANDARD_REQUIRED ON)
答案 1 :(得分:0)
我的解决方案是(在.pro文件中):
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -std=c++11
QMAKE_CXXFLAGS += -mmacosx-version-min=10.7
QMAKE_LFLAGS += -mmacosx-version-min=10.7
答案 2 :(得分:0)
它已经有一段时间了。
我最终如何解决它在 CMakeLists.txt 中指示project(MyProject)
之后的以下行:
add_compile_options(-std=c++11)
对cmake说,创建一个 Makefile ,它将使用c ++ 11解决问题。
答案 3 :(得分:0)
如果使用QtCreator,您可以将其添加到.pro
文件中:
CONFIG += c++11
答案 4 :(得分:0)
有时,这将不是其他答案中提到的配置问题。就我而言,问题是一个文件恰好以.CPP扩展名而不是.cpp保存。 QMake(Qt5)错误地标识了文件,并尝试使用C编译器而不是C ++编译器进行编译。来自Qt4的QMake没有出现此问题。重命名文件可解决此问题。
当时我的评论是“难道真的就是f& %%&很简单!”