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的空間,請預留好內存空間