一 LLVM版本
二 适用预构建的二进制文件安装LLVM
三 适用包管理器安装LLVM
四 从源码构建用于Linux的LLVM
五 从源码构建用于Windows和Visual Studio的LLVM
六 从源码构建用于MacOS 和XCode的LLVM
1.1 LLVM项目从10年前第一次发布到版本3.4,其SVN存储库包含了超过20万次提交,仅仅在2013年,有3万次提交,因此,新功能不断被引入,有些功能页迅速被淘汰了,正如任何大项目一样,开发人员有比较短的开发周期。需要在项目运行良好并通过各种测试时发布稳定的检查点,从而允许用户在使用经过良好测试的版本的同时,体验最新的功能。
LLVM项目在整个发展历史上采用了每年发布两个稳定版本的策略,每次更新将次要版本号增加1。例如,从版本3.3到版本3.4的更新时次要版本更新,一旦次要号码达到9,下一个版本号就会在主版本号加1,就像LLVM 2.9之后更新的LLVM 3.0, 与其前任版本相比,主要修订版本的更新不一定会产生很大的变化,但是与上一个主要版本相比,这个主要版本更新一般代表近5年来编译器的发展过程。
依赖于LLVM的项目通常使用其Trunk 主干版本,即SVN存储库汇总最新可用的版本,然而使用这个版本的代价在于这个版本可能不稳定,最近,从版本3.4开始,LLVM社区致力于修正发布,引入新的修订版本号。这项工作的第一个产品是LLVM 3.4.1。修正发布的目的主要是主干分支修复的补丁包不添加任何新特性的移植到最新版本。
1.2 获取预构建包
LLVM贡献者为特定平台准备了预编译的二进制文件,可以不用自己编译,在某些情况下,编译一个软件可能很棘手。获取LLVM的预构建包的方法有两种,可以通过官方网站获取已经发布的二进制文件的软件包。
1.2.1 获取官方预构建二进制文件
通过访问http://www.llvm.org/release/download.html 可以查看不同版本的所有选项,在Ubuntu13.10 上下载并执行系统范围的LLVM安装,需要获取该文件的URL,使用以下命令
sudo mkdir -p /usr/local; cd /usr/local/
xxxx
至此,LLVM和clang就可以使用了。请记住,需要永久的更新系统的PATH环境变量,因为我们最后一行所做的更新仅仅对当前shell会话有效。可以食用简单的命令执行Clang来测试安装是否成功,比如打印安装的Clang版本号。
clang -v
如果在运行clang的时候遇到问题,尝试直接从安装位置运行二进制代码,以确保你没有遇到Path变量错误配置的问题。如果问题还没有解决,则你下载的预构建文件可能与你的系统环境不兼容。请记住,在编译时二进制文件需要与特定版本的动态链接。如果运行应用程序时出现链接错误。就说嘛你下载的预构建二进制文件与系统的不兼容。
例如,在linux 中,在出现错误信息之后,可以通过打印二进制文件名称和无法加载的动态库的名称来发现链接错误。当屏幕上打印动态库名称时就要注意,说明系统动态库连接器和加载器无法加载该库,因为该程序与当前系统不兼容。
如果要在除windows 以外的其他系统中安装预构建的软件包,遵循相同的步骤。针对Windows 的预构建软件包提供了一个易于使用的安装程序。
1.2.2 使用软件包管理器
软件包管理器应用程序可以用于各种系统,也是获取和安装LLVM Clang二进制文件的简单方法。对于大多数用户来说,这通常是安装LLVM 和Clang的首选方法,因为会自动处理依赖关系的问题,确保你的系统与所安装的二进制文件兼容。
例如 ubuntu 中,应该使用以下指令。
sudo apt-get install llvm clang
在Fedora 18中,使用类似的命令行,但是包管理器不同。
sudo yum install llvm clang
使用快照更新。
也可以从每日构建的源代码快照构建软件包,来自LLVM的字版本控制库的最新修改。
linux
通过debian,和ubuntu linux软件库,可以从LLVM 版本控制库中下载每个编译的快照,可以在http://llvm.org/apt 查看更多详细信息,例如,要在ubuntu 13.10 上安装LLVM和Clang的每日发行版本,用如下命令
sudo apt-get install clang-3.5 llvm-3.5
1.3 从源代码构建
没有预构建的二进制文件的情况下,线获取源代码,然后从头构建LLVM Clang。从源代码构建能够更好的了解LLVM结构,此外,可以微调配置参数,以获取定制的编译器。
1.3.1 系统要求
sudo apt-get install build-essential zliblg-dev python
如果正在使用包含过时软件包的旧版本linux发型版本,尽量更新系统。LLVM源代码对用于执行构建的C++编译器非常苛刻,如果依赖旧的C++编译器,可能导致构建失败。
1.3.2 获取源代码
wget http://llvm.org/release/3.4/llvm-3.4.src.tar.gz
wget http://llvm.org/release/3.4/clang-3.4.src.tar.gz
wget http://llvm.org/release/3.4/clang-tools-extra=3.4.src.tar.gz
1.3.2.2 Git
git clone http://llvm.org/git/llvm.git
git clone http://llvm.org/git/clang.git
1.3.3 构建和安装LLVM
下面将解释构建和安装LLVM的各种方法
1.3.3.1 使用自动工具生成的配置脚本
构建LLVM的标准方法是使用过GNU自动工具创建的配置脚本,生成针对特定平台的Makefile文件,该构建系统支持不同的配置选项,被广泛采用。
--enable-optimized 此选项允许我们在关闭调试和启用优化的情况下编译。
--enable-assertions 此选项在代码中启用断言
--enable-shared 允许我们将LLVM/Clang库构建为共享库
--enable-jit 支持所有目标启用即时编译,
--prefix 安装路径
--enable-targets 允许我们选择编译器输出代码的目标集
在使用相应参数运行configure后,还需要使用经典的make和make install两个命令完成构建,接下来我们给你展示一个例子。
使用unix构建和配置LLVM
在这个例子中,使用一系列命令构建一个未优化(即调试模式下)的LLVM/Clang ,该方法适合于任何基于Unix的系统或者Cygwin。不同之前的例子安装在/usr/local/llvm 目录下。