文章目录
前言
以前曾写过 Windows10下编译OLLVM-14.x 这篇文章,经过时长两年半的洗礼,LLVM 的版本已经更新迭代到 19.x,并且不再推荐使用 LegacyPass
旧文章是直接对官方 LLVM 修补并直接编译的,对 NDK 里的 llvm 不是很友好。考虑到 OLLVM 通常用于 NDK,所以在此记录一下针对 NDK 的 OLLVM 修补和编译流程。
一、环境准备
- Windows11(x64) 并安装了 WSL2(Ubuntu22.04+)
- Windows Terminal
- VSCode(推荐,可以直接访问 WSL 里的文件)
下面几乎所有的操作都在 Ubuntu 里进行,如果还没安装 WSL 的自行搜索一下相关安装教程
由于仓库源在 Google Git,所以要怎么上网大家 dddd ,WSL2 的网络代理也可以自行去搜索一下
二、拉取源码
首先进入 WSL 的 Ubuntu 系统,并准备好优质网络。
本人是直接以 root
身份进入系统的,因此命令行不需要加 sudo
1. 更新软件包
如果已更新可忽略此步骤
apt update -y && apt upgrade -y
2. 安装依赖
apt install repo make yacc cmake bison python-is-python3 -y
3. 克隆源码
Tips: 此步骤超吃流量(25~30g左右)和网速,请确保你已准备好充足的流量和高带宽。
用 repo
初始化仓库:
mkdir llvm-toolchain && cd llvm-toolchain
repo init -u https://android.googlesource.com/platform/manifest -b llvm-toolchain
一般情况下,我们要根据 NDK 里的 llvm 版本克隆对应的分支源码,这样将编译后的 clang 文件替换到 NDK 里才不会出现各种问题。
克隆对应的分支,官方文档里也有提及,这里再展开