此处以Ubuntu18.04为例
快速安装
搜索一下软件包
sudo apt search llvm
会发现有很多版本,我们安装需要的版本就行
sudo apt install llvm-6.0
sudo apt install clang-6.0
手动编译安装
单独编译llvm
llvm与clang都作为单独的组件以开源形式提供,可以单独编译它们,也可以组全在一起编译。我们先来看下,如何单独编译llvm。
注意,很多选项的介绍见文章的混合编译部分,用以提高编译效率和成功率
在http://releases.llvm.org/下载源码,然后解压
注意:编译不可以在解压后的文件夹内部编译,需要在外部新建一个文件夹,否则编译会失败!
执行以下命令,新建mybuilder目录,并进行编译配置。
mkdir mybuild
cd mybuild
cmake -G "Unix Makefiles" --enable-optimized --enable-targets=host-only ../llvm-7.0.1.src
然后再执行以下命令开始编译:
cmake --build .
注意,此处如果电脑性能好,此处可以指定多线程来编译,将上面的指令替换为如下
(建议电脑内存8G及以上)
make -j10
如果出现CMAKE_CXX_COMPILER错误,则还需要安装一下build-essential编译包,这个包里包含了众多GNU的编译工具。命令:sudo apt install build-essential
如果出现c++: internal compiler error: Killed (program cc1plus)
说明内存不足,需要拓展内存。
llvm和clang混合编译
首先下载llvm和clang的源码包并解压,把解压后的clang的源码包重命名,并移动到llvm-7.0.1.src/tools/
目录下,最终效果为llvm-7.0.1.src/tools/clang/
。
然后在build文件夹里运行命令
cmake -G "Unix Makefiles" --enable-optimized --enable-targets=host-only -DCMAKE_BUILD_TYPE=Release ../llvm-7.0.1.src
即
cmake -G <generator> [options] <path to llvm sources>
-G
是指定编译器架构/工具(generators),其中一些generators如下(即编译工具):
- Unix Makefiles
- Ninja
- Visual Studio
- Xcode
可选项options
如下:
-DCMAKE_INSTALL_PREFIX=directory
明确LLVM工具和库被安装的位置,默认在/usr/local下。-DCMAKE_BUILD_TYPE=type
Debug选项,默认就是使用Debug,可以改为Release减少不必要的文件。-DLLVM_ENABLE_ASSERTIONS=On
编译时开启断言检查(assertion),默认就是开启
要注意整个llvm和build的绝对路径中不要出现中文,否则会出问题。
编译时最好指定下面两个选项:
--enable-optimized
打开优化,默认情况下是关闭的。这样会生成大量 debug 信息,以致于产生的文件可能高达 9.4 G 之多,这可能很快耗尽磁盘空间导致编译失败。
--enable-targets=host-only
选择目标平台,默认情况下会生成所有平台的。这里设置成 host-only 只选择本机即可。
cmake会检查编译环境,如果没有报错,直接运行make命令即可开始编译。
Comments | NOTHING