關於LLVM源碼在Linux(Ubuntu 20)下編譯的過程


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM