6

Clang 有一个二进制发行版,但没有任何README文件或任何东西可以告诉您 tarball 中有什么或如何处理它。

看来我需要单独下载和安装libc++. 我可能只需要复制clang二进制文件和其他一些文件,但不是所有的llvm-*东西。这只是从二进制发行版中缺少任何 C++ 头文件(尽管包括一些特定于环境的头文件)以及llvm-as我现有的 Xcode 安装的 LLVM 3.2 中缺少等来判断。

我只想运行编译器,而不是使用libclang或组装 LLVM 程序集文件进行开发。某处有说明页吗?

4

2 回答 2

3

LLVM 项目实际上并不期望很多人使用他们推出的二进制发行版。LLVM 为定期验证发布版本,但预计大多数用户将通过他们的操作系统发行版获得 LLVM,或者将从源代码构建他们想要的版本。

请参阅此电子邮件线程,其中 clang 开发人员正在讨论如何使用二进制文件分发。

也就是说,您可以根据需要使用他们的发行版。安装什么取决于你想要做什么:

  • 使用 clang 作为静态编译器。
  • 构建基于 clang 的工具。
  • 使用 LLVM 作为自定义语言编译器的后端。

我可能只需要复制 clang 二进制文件和其他一些文件,但不是所有 llvm-* 的东西。

如果您只想编译 C/C++/Obj-C,那么我相信您只需要 clang 二进制文件(和“clang++”符号链接)、“内置”头文件和运行时库。您会在/lib/clang/<version>/. (clang 编译器通常通过它们相对于二进制文件的位置来找到它的内置部分。)

如果你想使用 LLVM 作为后端,你需要 LLVM 头文件和库来构建和链接,或者你需要一些 ll* 二进制文件来处理前端的输出。

如果您想构建基于 clang 的工具,您将需要 clang 头文件和库来构建和链接,无论是稳定的 C API 还是不稳定的 C++ API。

请注意,这些库是使用 RTTI 构建的,并且禁用了异常。这会更改 ABI,因此您无法将这些与使用 RTTI 构建的代码或启用的异常链接。

看来我需要单独下载和安装libc++。

正确,libc++ 不包含在 LLVM 的发行版中。许多名义上的 LLVM 子项目不包括在内。LLDB 是另一个例子。

LLVM 也不包括标准 C 库或基本的 Objective-C 框架。

于 2013-07-29T15:37:41.310 回答
2

对于基于 Ubuntu/Debian(包括 Linux Mint)的 Linux 发行版,还有来自http://llvm.org/apt/的预构建 .deb 文件

这样做的好处是以后更容易卸载,并且还提供了 Clang 3.4 nightly builds(还提供了 3.3 版本)。sources.list只需在您的(或使用 GUI 包管理器)中添加一行,就可以了。

于 2013-07-29T10:24:42.853 回答