2016-09-05 191 views
1

我使用Qt 5.7和gcc 4.9.2。 Qt核心模塊拋出Qt requires C++11 support錯誤。Qt要求C++ 11支持

This page

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

您是否嘗試過使用C++ 11(如編譯器標誌)? – ray

+0

@ray我將TARGET_LINK_LIBRARIES(xxxx yyyy/usr/bin/C++ -std = C++ 11添加到CMakeLists.txt文件 – zumma

+0

啊,對不起,我在第一眼看到帖子時一定錯過了這個部分 – ray

回答

0

轉到C++ 11上明確:

  1. set(CMAKE_CXX_FLAGS "-std=c++11" CACHE STRING "compile flags" FORCE)project(...)聲明。
  2. 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)
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 
0

它已經有一段時間。 如何最終解決它表明的CMakeLists.txt以下行只是project(MyProject)後:

add_compile_options(-std=c++11) 

這向CMake說,創建一個的Makefile將使用C++ 11解決的問題。