2013-02-07 44 views
4

OS:OS X 10.8.1 QtCreator:2.6.2鐺++ QtCreator下不能使用C++工作11

命令行是好的,但QtCreator無法編譯代碼。

#include <functional> 
#include <iostream> 
#include <memory> 
#include <string> 
#include <vector> 

int main(int argc, const char * argv[]) 
{ 
    std::vector<std::string> strs{"yahoo", "haha"}; 
    for(auto const &data : strs){ 
     std::cout<<data<<std::endl; 
    } 

    std::vector<std::string> strs2 = std::move(strs); 

    std::unique_ptr<int> A(new int(3)); 
    std::cout<<*A<<std::endl; 

    return 0; 
} 

命令行:QtCreator http://www.flickr.com/photos/[email protected]/8453188038/in/photostream

Qt的pro文件的

clang++ -stdlib=libc++ -std=c++11 main.cpp -o test 

編譯器設定

TEMPLATE = app 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 

QMAKE_CXXFLAGS += -std=c++11 
QMAKE_CXXFLAGS += -stdlib=libc++ 

錯誤消息:

clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later) make: *** [main.o] Error 1

但我的操作系統數量爲10.8.1

回答

4
TEMPLATE = app 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 

LIBS += -stdlib=libc++ 

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

我可以通過這個.pro文件 編譯代碼但也有警告,當你使用Qt庫

LD播放:警告:未找到選項「目錄-F /用戶/年/月Qt5.0.1/5.0.1/clang_64/qtbase/lib目錄」 經過一番研究,我發現這是QT5 的錯誤,如果你忽略此警告消息,甚至很是煩人

+0

感謝您的幫助!你能鏈接到Qt錯誤嗎? – Grault

2

經過一番研究,我發現該錯誤消息,可以通過添加 標誌的.pro文件

TEMPLATE = app 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 

QMAKE_CXXFLAGS += -stdlib=libc++ 
QMAKE_CXXFLAGS += -std=c++11 
#QMAKE_CXXFLAGS += -mmacosx-version-min=10.7 #1 
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 #2 

1和#來解決2千萬擺脫錯誤消息

錯誤消息鐺的:錯誤:無效部署目標爲-stdlib = libc的++(需要OS X 10.7或更高版本) 但他們也產生ANO療法錯誤消息

LD:符號(多個)未找到架構x86_64的 鐺:錯誤:連接器命令,退出代碼1失敗(使用-v看調用)

符號沒有發現,但我不知道應該鏈接到哪個.a?

0

這似乎這是確定爲我做詭計。

CONFIG + = C++ 11

它正確地把-std = C++ 11在命令行中,我沒有得到任何編譯或鏈接錯誤。

使用Qt 5.2。