2012-12-29 119 views
3

我在給C++ 7年後再次嘗試一次。我已經下載了最新發布的用於osx的Qt 5.0 sdk,但是我無法獲得使用Qt Creator編譯的基本C++ 11功能。下面的語句:Qt 5.0和C++ 11與OSX Mountain Lion

auto i = 3; 

導致編譯錯誤:

mainwindow.cpp:19: error: ISO C++ forbids declaration of 'i' with no type 

我有谷歌周圍類似的問題,發現建議把

QMAKE_CXXFLAGS += -std=c++11 
    or 
CONFIG += c++11 

在.pro文件。不幸的是沒有成功。構建失敗了無法識別的命令行選項。

我一定在做錯事。有什麼建議麼?

感謝,

弗蘭斯

+0

你安裝了什麼編譯器(和版本)? – Mat

+0

我有最新版本的xcode以及隨附的命令行工具:版本4.5.2(4G2008a)。在Xcode本身中,使用C++ 11功能是沒有問題的。此外,建設增加1.52只是工作。 – user1936348

+0

GCC 4.5沒有'C++ 11'標準模式,而是'C++ 0x'。 – Mat

回答

0

按照gcc feature listauto是因爲gcc 4.4通過支持:

g++ -std=c++0x 

你也可以嘗試gcc-specific形式:

g++ -std=gnu++0x 

也許,在你的情況,會發生一個額外的問題(g ++參數沒有正確地提升到編譯器)。

+0

謝謝。不幸的是不幸運。我懷疑這個問題與Mac版Qt 5.0 sdk的構建方式有關(鏗鏘vs.g ++)。但是我對XCode工具和/或Qt知之甚少。我沒有發現Qt文檔在這方面很有幫助。 – user1936348

3

它看起來像Qt Creator for Mac bug。 我固定它使用

QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7 
LIBS += -stdlib=libc++ -mmacosx-version-min=10.7 

在.pro文件

1

我不知道這是否仍是你的問題。

在我目前的系統(最大OS X的優勝美地 - Qt的5.4 - 3.0 QtCreator - 的XCode 6.1.1),這就像一個魅力:

在.pro文件:

macx { 
    QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 
    QMAKE_CXXFLAGS += -mmacosx-version-min=10.7 
    QMAKE_CFLAGS += -mmacosx-version-min=10.7 
    QMAKE_MAC_SDK = macosx10.9 
} 

macx { 
    QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ 
    QMAKE_CFLAGS += -std=c++11 -stdlib=libc++ 
} 
CONFIG += c++11 

確保你還安裝了最新的Mac OS X SDK。