操作系统: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:错误:-stdlib = libc ++的无效部署目标(需要 OS X 10.7或更高版本):*** [main.o]错误1
但我的操作系统编号为10.8.1
答案 0 :(得分: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 / Users / yyyy / Qt5.0.1 / 5.0.1 / clang_64 / qtbase / lib'的目录 经过一番研究,我发现这是Qt5的一个bug 如果您忽略此警告消息即使它很烦人也没关系
答案 1 :(得分: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
错误消息clang:错误:-stdlib = libc ++的无效部署目标(需要OS X 10.7或更高版本) 但它们也会生成另一条错误消息
ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
符号未找到,但我不知道我应该链接到哪个。?
答案 2 :(得分:0)
这似乎对我有用。
CONFIG + = c ++ 11
它在命令行中正确地放了-std = c ++ 11,并且我没有得到任何编译器或链接器错误。
使用Qt 5.2。