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 框架。