这是一篇会持续更新的博客.
我想把安装LLVM的方法都列出来,以便于自己的查阅,也希望能对需要的朋友有所帮助。
这里面参考了很多前辈的资料,也有自己的摸索总结,前辈们的链接我会老老实实地在文章中贴好~(搓手手)
另:写这篇博客的前半年安装的llvm,在写这篇博客的时候,没有很多实时的截图,很多是当时安装的文字记录,有机会补图上来。
其中若有错误纰漏欢迎大家留言指正,我会及时更正。
首先贴一些基础的参考链接:
官网主页:http://llvm.org
中文官网主页:https://www.llvm.org.cn LLVM的首页被翻译成了中文,首页中的很多链接里面的内容还是英文的。
官网提供的安装方法:http://clang.llvm.org/get_started.html
一、【方法一 】从LLVM官网下载预编译好的包
1. 在官网主页的左边栏有下载链接:
点击“All Release”可以看到所有LLVM版本的下载列表。http://releases.llvm.org
从左到右,各列分别对应版本的发布时间、版本号、下载链接、发布说明(包含一些更新的信息)、开发文档
在查阅开发文档时,最好是查看下载的版本对应的文档,会获得准确的信息
2. 选择好版本之后,点击版本号后面的download,在Pre-Built Binaries下面,根据相应的操作系统下载不同的预编译文件。
mac系统下载第一个Clang for Mac OS X(.sig),ubuntu系统根据具体情况下载Clang for x86_64 Ubuntu XXX(.sig).
3. 下载之后解压到一个目录下,解压后的文件夹下包含bin,include,lib,libexec,share文件夹
将bin文件夹添加进环境变量
环境变量的添加可参考的链接很多,比如参照链接:https://www.cnblogs.com/shineqiujuan/p/4693404.html
在ubuntu下环境变量添加方法:
将下载的预编译包解压(clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04)放在home目录下,
在ubuntu中添加环境变量的命令:
sudo gedit /etc/profile
添加以下两行命令:
export LLVM_HOME=/home/xxx(your usrname)/clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04/bin
export PATH=$LLVM_HOME:$PATH
当然,如果觉得clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04太长,改一个短一些的可识别的文件夹的名字即可。
在mac下环境变量添加方法之一:(单个用户设置)
在命令行中,执行以下命令:
touch ~/.bash_profile 创建
vim ~/.bash_profile 打开并编辑
点一下向下箭头,点E 进入bash_profile文件
点i进入编辑模式,进行编辑
编辑完成后,点esc 退出
直接输入 ::wq! 这四个字符后,回车
一般环境变量修改后,重启后生效,如果想立即生效,执行:
source ~/.bash_profile
4.下载cmake
ubuntu下载cmake直接:sudo apt install cmake
配置cmake环境变量
mac上是:export PATH=/Applications/CMake.app/Contents/bin:$PATH
5.通过以上步骤,简单的llvm使用基本上就没问题了。
二、【方法二】根据LLVM官网教程编译源码进行安装(Unix-like System)
安装方法链接:http://clang.llvm.org/get_started.html
或者这个链接:http://llvm.org/docs/GettingStarted.html
按照官网步骤来即可,以下的内容是翻译和少许采坑补充:
Overview概述
欢迎使用LLVM!为了开始上手,你首先需要知道以下的一些基础信息。
首先LLVM是由三部分组成的。LLVM suite + Clang front end + Test suite(optional)
Getting Started Quickly 快速开始(命令行安装教程)
http://clang.llvm.org/get_started.html这个链接中的Getting start更新会及时一些。
1.读文档
2.读文档
3.两次提醒读文档
4.Checkout LLVM
cd where-you-want-llvm-to-live(添加一个你想放置LLVM的路径)
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
5.Checkout Clang
cd where-you-want-llvm-to-live (跟4中相同的LLVM的路径)
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
6.Checkout Extra Clang Tools [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
7.Checkout LLD linker [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/lld/trunk lld
8.Checkout Polly Loop Optomizer [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/polly/trunk polly
9.Checkout Compiler-RT(Required to build the sanitizers) [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
10.Checkout Libomp(required for OpenMP support) [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
11.Checkout libcxx and libcxxabi [不是必须的,可选]
cd where-you-want-llvm-to-live(跟4中相同的LLVM的路径)
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
12.Get the Test Suite Source Code [不是必须的,可选]
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
【注】:svn中checkout的意思是“迁出”,把代码从代码库下载到本地。
build=compile+link,build中文意思可以理解为“编译链接”或一个笼统的“构建”
13.配置和构建(build)LLVM和Clang
需要使用cmake工具,在此之前需要确认已经有必要的所有的源代码,在cmake的build过程中不会允许新增源代码目录。
LLVM需要CMake3.4.3及以上版本来build,通常建议使用最新版本的CMake,特别是在生成Ninja的build文件的时候。因为Ninja的生成器(generator)与CMake的生成器(generator)有很大的关联。
CMake的安装、使用指南参见http://llvm.org/docs/CMake.html。
安装CMake之后需要为CMake配置环境变量,便于CMake在命令行中能够使用。
不能够在LLVM的源码目录下build,这是不支持的。必须新建一个build目录,在这个目录下完成13的操作。
操作步骤如下:
cd where you want to build llvm
mkdir build
cd build
cmake -G
make -j4
其中
其中[options]可以不写,如果要写的话,有以下选项:
其中make工具的说明:
如果在build的过程中,遇到了“internal compiler error(ICE)”或者是测试失败,官网上建议:
(1)查看http://llvm.org/docs/GettingStarted.html#getting-started-with-llvm这一章节了解清楚LLVM的配置和编译的细节信息
(2)了解一下源码树的层次结构http://llvm.org/docs/GettingStarted.html#directory-layout
(1)(2)中内容的翻译,我会在我的其他的博客中进行介绍,欢迎指正。
如果对【方法二】还有疑问,这个是我表述以及在细节介绍少还不完整,请大家见谅,可以参考这篇大牛的博客:
https://blog.csdn.net/baimafujinji/article/details/78598658
这篇博客里面有官网教程的步骤贴图以及mac环境变量的配置贴图。
三、【方法三】根据LLVM官网教程编译源码进行安装(Windows System,Using Visual Studio)
http://clang.llvm.org/get_started.html
接下来的细节用于在Windows系统上使用Visual Studio编译安装Clang
1.获取需要的工具:
2.Check out LLVM:
3.Check out Clang:
【注】一些Clang的测试对换行符(line endings)很敏感,需要确保文件不会将LF模式换行符转换成CR+LR模式
如果使用git-svn命令,需要确保你的core.autocrlf的设置是false的。
4.运行CMake生成Visual Studio的解决方案和工程文件
5.构建(build) Clang:
6.将llvm/debug/bin添加进环境变量
7.更多的使用测试信息参考链接:http://clang.llvm.org/hacking.html#testingWindows
四、【方法四】根据LLVM官网教程编译源码进行安装(Windows System,Using Ninja alongside Visual Studio)