1.本文在ubuntu20.04下安装构建LLVM12,其中需要配置前提环境,包括(gcc/g++,make,cmake ninja),安装如下:
gcc/g++安装:
sudo apt-get install g++
gnu make安装:
sudo apt-get install make
cmake安装:
sudo apt-get install cmake
ninja安装:
sudo apt install ninja-build
2. LLVM12安装
2.1项目主体下载(2选1)
2.1.1git clone下载安装(ubuntu下 下载非常缓慢 通常需要修改DNS域名来加快下载速度):
git clone https://github.com/llvm/llvm-project.git//可以选择指定release版本为12下载
2.1.2源代码下载安装:
1)可通过windows先点击进入LLVM git社区 选择LLVM12版本,链接如下:
https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0
2)找到如下压缩包点击下载,将其解压并重命名为llvm-project文件到Home下
2.2 通过Ninja构建LLVM
2.2.1首先在llvm project下创建build文件夹。并附上LLVM 目录树如下:
-llvm project
-build
-llvm
-等等其他开发工具包
2.2.2使用cmake编译系统文件。
其中LLVM指出此处编译时含有多个参数可供选择
1) 指定编译哪些目标机器(optional):
-DLLVM_TARGETS_TO_BUILD="X86;AArch64;RISCV"(默认全部)
2) 指定编译哪些项目(optional):
-DLLVM_ENABLE_PROJECTS=clang(此处表明只编译的项目为clang)
3) 指定生成的版本是 DEBUG 还是 RELEASE(optional):
-DCMAKE_BUILD_TYPE=Release(默认debug)
4) 指定生成静态库还是共享库(optional):
-DBUILD_SHARED_LIBS=ON( 默认静态库,此处ON表明改为共享)
cmake -G Ninja -DLLVM_TARGETS_TO_BUILD="X86;AArch64;RISCV" -DLLVM_ENABLE_PROJECTS=clang -DBUILD_SHARED_LIBS=ON ../llvm
2.2.3Ninja构建
ninja -j2
注意:如果上述选择默认构建的话会报错如下:
ninja: error: loading 'build.ninja': No such file or directory
分析发现,我们安装的ninja位于ubuntu下的三个地方,其中可执行文件位于usr/local/bin中;压缩文件ninja.1.gz位于应用程序资源文件目录下。
当上述编译为共享库时才能在build目录编译出build.ninja文件,从而解决上述未找到build.ninja问题。
2.2.4Ninja安装
ninja install