如何从二进制发行版安装Clang?

Pot*_*ter 6 c++ installation clang

Clang有一个二进制发行版,但没有任何README文件或任何东西可以告诉你tarball中的内容或者如何处理它.

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

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

bam*_*s53 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 框架。