IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Ubuntu16.04使用ninja编译安装LLVM -> 正文阅读

[开发工具]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
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:53  更:2022-05-24 18:27:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 10:06:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计