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 ответа:
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, чтобы увидеть вызов)
Символ не найден, но я понятия не имею, что именно .а надо ли по ссылке?