1. 最好在gitee上查找llvm的源码或者直接git clone https://gitee.com/uniquesquirrel/llvm-project.git,是和github上的llvm项目同步的,使用gitee下载的会更快一些;
2. 可以查看llvm-project下面的README.MD文件,里面是编译llvm过程的详细步骤,新建好build文件夹后,在编译开始之前有关于选择generator的指令cmake -G <generator> [options] ../llvm,这里可选的generator还是很多的,我这里使用的是Unix Makefiles,
执行cmake -G "Unix Makefiles" ../llvm即可,注意这里需要加双引号;
3. 最后在build文件夹下执行cmake --build . 即可;
4. cmake build的过程非常的久,大概两个小时,如果在编译过程中出现
collect2: fatal error: ld terminated with signal 9 [已杀死]
compilation terminated.
make[2]: *** [tools/lto/CMakeFiles/LTO.dir/build.make:250:lib/libLTO.so.12git] 错误 1
make[2]: *** 正在删除文件“lib/libLTO.so.12git”
make[1]: *** [CMakeFiles/Makefile2:25520:tools/lto/CMakeFiles/LTO.dir/all] 错误 2
make: *** [Makefile:152:all] 错误 2
这种错误的话,是swap空间不足,通过以下指令增加swap空间
sudo mkdir /opt/other/swapfile
cd /opt/other/swapfile
sudo dd if=/dev/zero of=swap bs=1024 count=10000000 (这里增加了约9.5G的空间)
sudo mkswap -f swap
sudo swapon swap
如果出现“不安全的权限0644,建议使用0600”这种提示,不用理会就好
这样再重新回到build文件夹下面执行cmake --build . 指令,cmake会从之前的链接失败处继续build
5. 注意,llvm编译完成后需要至少40G的空间,请预留好内存空间