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



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

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

我只想运行编译器,而不是用libclang开发或组装LLVM汇编文件。哪里有说明书页吗?

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

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

也就是说,如果你愿意,你可以使用他们的分布。安装什么取决于你想做什么:

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

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

如果你只想编译C/C++/Oj-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框架。

对于基于Ubuntu/Debian(包括Linux Mint)的Linux发行版,也有来自http://llvm.org/apt/

这样做的优点是以后更容易卸载,还提供了Clang 3.4夜间版本(还提供了3.3版本)。只需在sources.list中添加一行(或者使用GUI包管理器),就可以完成设置。

最新更新