导航

LLVM

Posted on 2025-12-05 13:32  xbox360  阅读(0)  评论(0)    收藏  举报

LLVM 的几种安装方式
LLVM 是一个编译器基础设施,它包含了很多子项目,其中 LLVM Core 负责后端功能.

此外,还有 clang, lld, llbd, libc++ 等子项目,它们共同组成了 LLVM.

在后文中,统一使用 LLVM,不再单独提 Clang 或 LLVM Core .

update
2025.04.07 第二次更新.

根据最新的实际情况做了一些调整.

版本选择
LLVM 不同的版本对于 c/cpp 标准的支持情况.

综合考虑你的开发环境(操作系统版本)和想要使用的 c/cpp 标准.

cpp

https://clang.llvm.org/cxx_status.html

c

https://clang.llvm.org/c_status.html
安装思路
LLVM 项目的 APT 仓库地址,没有被 ban,但是下载速度感人.

按照官方的教程来安装,不用代理会非常慢.

https://apt.llvm.org
另外,LLVM 很复杂,可安装的子项目太多了,每人的需求都不一样.

所以,先说有什么解决办法,大家自己来做判断.

使用国内镜像站、自建镜像站、使用 debian/ubuntu/centos 的软件源安装、使用代理工具(官方安装方式)、从源码编译安装

使用国内镜像
LLVM 国内镜像,目前只有清华源(2025.04.07),其他源都是从清华源同步而来的.

清华源之前只从 llvm 版本角度同步,只同步最新的 llvm.

现在考虑了操作系统版本,同步的版本多了起来.

当前支持,以下操作系统的 LLVM安装.

在后面介绍,每个操作系统大版本,能安装的LLVM版本

debian 11 12
ubuntu 18 20 24
对于其他,比如旧版本和centos这样redhat系linux,你需要从它的软件源安装.

自建镜像站
自建一个镜像站,属于一劳永逸的方案.

需要一个大硬盘,第一次同步,需要花很多时间.

后续使用,就非常轻松了.

你可以使用 apt-mirror 这个工具来搭建镜像站.

https://github.com/apt-mirror/apt-mirror

NB 对于一些古老的版本,1.0 2.0 这样的,官方镜像站也没有.
我之前写过一篇,使用 apt-cacher-ng 搭建镜像缓存站的博客.

https://zhuanlan.zhihu.com/p/1568921196

镜像缓存站,只缓存一部分需要的文件,占用硬盘空间更小.

但是同样的第一次缓存,很花时间.

使用 debian/ubuntu/centos 源安装
主流的 linux 发行版,维护了一套自己的 LLVM 安装包,放到自己的软件源里.

这些软件软在国内都有镜像,安装起来速度也不慢.

应该没人在 Windows 上用 LLVM 吧.
使用代理工具
这个是我最推荐的,少折腾,最省事.

即便你使用代理,我也建议你看看官方文档,和先使用 Docker 测试安装.
从源码编译安装
从源码安装,有三种方式

编译出安装包(exe, deb, rpm).
编译出可执行文件
直接编译安装.
第一种,LLVM 给出一份编译指导.

结合前面那个项目,花点时间应该能搞明白

https://apt.llvm.org/building-pkgs.php
第二种,LLVM 官方编译好了可执行文件,你可以直接下载来用,清华源也提供了镜像(只包含最新版本).

https://github.com/llvm/llvm-project
https://mirrors.tuna.tsinghua.edu.cn/github-release/llvm/llvm-project/
第三种,LLVM 也给出了官方文档.

LLVM 每个大版本都有一个的官方指导.

你可以在这个页面找到.

https://releases.llvm.org
会在后文介绍第三种的编译过程.

其实我更推荐你研究第一种,直接编译生成 deb 包.

思路:创建一个 github 仓库,写好 github action ,
按照版本 tag,自动化构建 deb 包,推送到 release 中,需要那个下载哪个就行.

这里我们留个坑以后再填
官方安装方式
通过官方 https://apt.llvm.org apt 仓库安装.

bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
chmod +x llvm.sh
sudo ./llvm.sh all
每个操作系统大版本,能安装的LLVM版本不同.

打个比方,debian9 能装llvm15,但是不能装20, 21.

所以你需要去官方仓库 glance 一下.

LLVM 对于 debian 发行版的支持(2025.04.07)

https://apt.llvm.org

debian12 llvm 15-20
https://apt.llvm.org/bookworm/pool/main/l/

debian11 llvm 11-20
https://apt.llvm.org/bullseye/pool/main/l/

debian10 llvm 7-20
https://apt.llvm.org/buster/pool/main/l/

debian9 llvm 4-15
https://apt.llvm.org/stretch/pool/main/l/

debian8 llvm 3.6-8
https://apt.llvm.org/jessie/pool/main/l/

debian7 llvm 3.4
https://apt.llvm.org/wheezy/pool/main/l/
在 debian 12 上安装 llvm20

安装 20

./llvm.sh 20 all

注意:安装后的命令是带版本号的

clang-20 --version
clang++-20 --version

你也可以软连接过去

ln -sf $(which clang-20) /usr/bin/clang
ln -sf $(which clang++-20) /usr/bin/clang++