何时从源代码构建Clang时需要libc ++源代码?

时间:2015-01-07 04:54:05

标签: c++ macos clang llvm libc++

我在Linux和OS X上多年来一直在构建Clang。从LLVM Download page开始,我总是使用以下来源:

  • LLVM(LLVM源)
  • 编译器前端(Clang源)
  • 编译器RT(运行时源)
  • 编译工具(工具额外来源)

我可以在Clang 3.5 download, build and install script找到我用来下载,构建和安装Clang 3.5的配方。

它在OS X 10.7和10.8上运行得很好,而且我从来不需要在OS X 10.7.x或10.8.x上使用libc ++设备(大约在2010年左右通过当前版本)。

问题:什么时候需要libc ++和libc ++ ABI来源?


我正在尝试帮助解决无法在OS X 10.9上编译简单的C ++“Hello World”程序的问题。 Clang 3.5安装在/usr/local中(就像其他人一样),但它找不到标题(如<iostream>),并且在链接期间遇到未定义的符号(如"std::ostream::operator<<(std::ostream& (*)(std::ostream&))")。

我想知道10.7和10.8是否有先前版本的Clang所期望的标题和库,但是10.9需要它们构建和安装。

问题:这是缺少libc ++和libc ++ ABI的症状吗?

1 个答案:

答案 0 :(得分:2)

在构建/安装clang时,您应该检查libc ++源代码,这样您也将安装C ++ STL。

如果你的系统上没有libc ++运行时,你应该检查并安装libc ++ abi和libc ++,它们可以独立完成,并且独立于你的llvm / clang安装中的checkout。

作为参考,我建议你看一下MacPorts中的libcxxabi,libcxx,libunwind和llvm-X.Y端口,它们展示了我如何配置这些项目以通过优胜美地在Leopard上构建。