0

编译此文件时

#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++ 版本?

4

1 回答 1

2

首先确定 libc++ 在哪里:它将位于 Xcode 应用程序本身内。如果您找不到它,请使用 Xcode 对 HelloWorld 进行预处理并检查它以查找 std 标头的路径。

然后在您的命令行上指向include带有-I. 您还可以使用-nostdinc++来保证不会寻找其他 std 标头:

$ /my/clang -std=gnu++11 -stdlib=libc++ t.cpp -nostdinc++ -I<path-to-libcxx>/include
于 2013-09-14T22:17:35.460 回答