关于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