Ubuntu16.04使用ninja编译安装LLVM

  • 编译平台:Ubuntu16.04
  • 编译方法:直接从GitHub仓库克隆工程到本地进行编译
    • github地址:https://github.com/llvm/llvm-project
    • gitee地址:https://gitee.com/mirrors/LLVM

安装依赖

  • gcc/g++

    sudo apt-get install g++
    
  • gnu make

    sudo apt-get install make
    
  • cmake

    sudo apt-get install cmake
    
  • ninja

    sudo apt install ninja-build
    

安装

下载

git clone https://github.com/llvm/llvm-project.git

加速:

git clone https://github.com.cnpmjs.org/llvm/llvm-project.git

版本

cd llvm-project
git tag

选择控制台输出的相应版本

git show llvmorg-13.0.1

将控制台输出的commit对应的编号,使用reset回退到相应版本

git reset --hard ef32c611aa214dea855364efd7ba451ec5ec3f74

编译

mkdir build
cd build
# Release版本,在生成dot上有点小bug,推荐使用Debug版本
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" -G Ninja ../llvm
# Debug版本
cmake -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" -G Ninja ../llvm

使用cmake编译build工程,选择ninja方式建立文件,额外编译clang、clang-tools-extra和compiler-rt项目
在build过程中,可能出现一些not found的提示信息,只要没有error,无视warning

ninja
ninja install

完成工程构建后,输入clang -v验证是否成功

报错及处理

1. 不要用make,又慢又错

2. gcc/g++版本

在cmake过程中,可能提示gcc版本过低或者g++: not found

  • 更新源
    sudo apt update
    sudo apt upgrade
    
  • 安装多个版本的编译器
    sudo apt install build-essential
    sudo apt -y install gcc-7 gcc-8  g++-7 g++-8
    
  • 查看版本
    ls /usr/bin/gcc*
    ls /usr/bin/g++*
    
  • 创建备选方案,后面整数代表优先级
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8
    
  • 如果报错update-alternatives: error: alternative g++ can't be slave of gcc: it is a master alternative,将gcc和g++一起加
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
    
  • 设置备选方案
    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
    

3. 增加虚拟内存swap

fallocate -l 8G /swapfile
mkswap /swapfile
swapon /swapfile
vim /etc/fstab # 末尾追加
/swapfile none swap sw 0 0

参考

  • https://blog.csdn.net/weixin_43404388/article/details/114049088?pm=1001.2014.3001.5506
  • https://zhuanlan.zhihu.com/p/102028114
  • https://www.cnblogs.com/xdblog/p/15789030.html
  • https://blog.csdn.net/weixin_43693967/article/details/123719406
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值