clang++ под QtCreator не может работать с c++11


OS: OS X 10.8.1 QtCreator: 2.6.2

Командная строка работает нормально, но 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;
}

Командная строка:

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

Настройка компилятора QtCreator http://www.flickr.com/photos/92283971@N04/8453188038/in/photostream

Qt. pro файл

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

SOURCES += main.cpp

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

Сообщение об ошибке:

Clang: error: недопустимая цель развертывания для -stdlib=libc++ (требуется OS X 10.7 или более поздней версии) сделать: * * * [main.o] Ошибка 1

Но мой номер ОС-10.8.1

3 4

3 ответа:

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: предупреждение: в каталоге не найдено для опции ‘-Ф/пользователи/гггг/Qt5.0.1/5.0.1/clang_64/qtbase/Либ’ После некоторых исследований я выясняю, что это ошибка Qt5 Это нормально, если вы игнорируете это предупреждение, даже если оно раздражает

После некоторых исследований я обнаружил, что сообщения об ошибках могут быть решены путем добавления флаг для файла. 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 избавляются от сообщения об ошибке

Сообщение об ошибке clang: error: недопустимая цель развертывания для -stdlib=libc++ (требуется OS X 10.7 или более поздней версии) но они также генерируют другое сообщение об ошибке

Ld: символ(ы) не найден для архитектуры x86_64 clang: error: команда компоновщика завершилась ошибкой с кодом выхода 1 (Используйте -v, чтобы увидеть вызов)

Символ не найден, но я понятия не имею, что именно .а надо ли по ссылке?

Это, казалось, сделало трюк для меня.

CONFIG += c++11

Он правильно поставил -std=c++11 в командной строке, и я не получил никаких ошибок компилятора или компоновщика.

Использование Qt 5.2.