官网下载地址: releases.llvm.org/
下载源码进行手动编译
一般情况下只需要下载LLVM source code、Clang source code、compiler-rt source code这三个文件。将其进行解压(windows下可能需要以管理员身份运行解压软件),解压后的文件(以10.0.0为例)分别名为llvm-10.0.0.src、clang-10.0.0.src(低版本可能名为cfe)、compiler-rt-10.0.0.src。
将clang-10.0.0.src更名为clang,放至llvm-10.0.0.src的tools文件夹下,将compiler-rt-10.0.0.src更名为compiler-rt,放至llvm-10.0.0.src的projects文件夹下。并在与llvm-10.0.0.src同级的文件夹下创建build文件夹。
windows系统下
windows系统下还需要使用cmake及visual studio工具。
利用cmake-gui,首先在源路径填写src所在位置,在目标路径下填写build所在地址,如下图所示
之后单击Add Entry,如下图填写属性(Value为build文件夹下的install)
继续按下图填写属性
之后点击Configure选择vs2017,完成后点击generate,等待一段时间后在build文件夹可以看到有一个llvm.sln的工程,打开后在vs2017里面有一个ALL_BUILD工程,右击生成所有即可完成安装。
Linux系统
进入build文件夹下,利用cmake产生Makefile,命令格式为
cmake -G [generator] [options] …/llvm
一些常见的 generator:
Ninja : 用于生产Ninja配置文件,大多数的LLVM开发之使用Ninja。
Unix Makefiles : 用于生成兼容make的并行makefile
Visual Studio : 用于生成Visual Studio项目和解决方案
Xcode :用于生成Xcode项目
一些常见的选项:
-DLLVM_ENABLE_PROJECTS=’…’ :要另外构建的LLVM子项目的以分号分隔的列表。可以包括以下任何一个:clang,clang-tools-extra,libcxx,libcxxabi,libunwind,lldb,compiler-rt,lld,polly或debuginfo-tests。
-DCMAKE_INSTALL_PREFIX=directory :指定您希望安装LLVM工具和库的完整路径(默认值是/usr/local)
-DCMAKE_BUILD_TYPE=type : type 的有效选项是Debug,Release,RelWithDebInfo和MinSizeRel。默认为Debug。
-DLLVM_ENABLE_ASSERTIONS=On : 启用断言检查进行编译(对于Debug构建,默认值为Yes,对于所有其他构建类型,默认值为No)
注意:debug版本要远比release占用空间大,如果不是特殊项目,release版本可满足大多数需求。
故最终的命令可以为
cmake -G “Unix Makefiles”
-DCMAKE_BUILD_TYPE=release …/llvm-10.0.0.src
cmake之后进入build文件夹,直接make即可。
tips:
ninja或make 默认将构建所有LLVM的所有项目。
如果使用串行化的构建将会非常慢,Ninja默认使用并行构建,make的话,可使用make -j NNN(NNN为使用CPU的个数))
直接下载预编译好的二进制文件
如下图,选择对应的机器架构直接下载即可。
需要注意的是,预编译好的二进制文件可能会比源码编译产生的要少。