总结:
0. 环境预备:
(1.)安装 gcc-multilib
apt install gcc-multilib
(2.)安装 python3-distutils
sudo apt-get install python3-distutils
cd llvm-project/
1. 可以使用如下三种类似的cmake命令选项:
cmake -S llvm -B build -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/home/hongleili/local/llvmInstall -DCMAKE_BUILD_TYPE=Debug
cmake -S llvm -B buildLL -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/home/hongleili/local/llvmInstall
cmake -S llvm -B buildLL -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/home/opencl/local/llvmInstall -DLLVM_ENABLE_PROJECTS=clang
make -j16
或者
make
make install
DCMAKE_INSTALL_PREFIX 表示安装目录,执行 make install 是将会把build/bin和build/lib 等等拷贝过去。
详细解析 llvm 的 CMake 构建系统的网址:
Building LLVM with CMake — LLVM 15.0.0git documentationhttps://llvm.org/docs/CMake.html
2. 有可能在ld 链接阶段导致失败
因为在编译llvm的过程中会使用很多内存,当内存耗尽且swap分区不够大时,链接就会失败。
现象类似:
collect2: fatal error: ld terminated with signal 9
解决方法1:扩大swapfile容量
sudo mkdir swapfile #可能不是这样子
cd /swapfile
sudo dd if=/dev/zero of=swap bs=1024 count=67108864
sudo mkswap -f swap
sudo swapon swap
解决方法2:使用单线程编译
改make -j 为 make,不使用多线程方式