如何将XCode的libc ++与top-of-trunk clang一起使用?

时间:2013-09-13 18:22:58

标签: c++ xcode c++11 clang libc++

编译此文件时

#include <vector>

int main(int argc, char* argv[])
{
  std::vector<int> IntVector;
}

使用与Xcode一起发布的clang版本,我可以告诉clang使用llvm的libc ++:

$ clang -std=c++11 -stdlib=libc++ t.cpp -lc++ -o t

但是,当使用自建的clang版本时,此命令不起作用,因为clang找不到libc ++:

$ /my/clang -std=gnu++11 -stdlib=libc++ t.cpp -lc++ -o t
t.cpp:1:10: fatal error: 'vector' file not found
#include <vector>
         ^
1 error generated.

我知道我可以从源代码下载,构建和安装libc ++;但是,我更愿意使用Xcode发布的版本。

在使用我自己的clang版本时,如何使用随Xcode一起提供的libc ++版本?

1 个答案:

答案 0 :(得分:2)

首先确定libc ++的位置:它将位于Xcode应用程序本身内。如果您无法找到它,请使用Xcode预处理HelloWorld,并检查它是否为std标头的路径。

然后在命令行上使用include指向-I目录。您还可以使用-nostdinc++来保证不会查找其他标准标头:

$ /my/clang -std=gnu++11 -stdlib=libc++ t.cpp -nostdinc++ -I<path-to-libcxx>/include