第1.4章: Clang
什么是 Clang?
Clang 是来自 LLVM 项目的现代 C 和 C++ 编译器前端。它被设计为快速、
模块化且高度可移植。与 GCC 不同,Clang 允许你在编译时自由指定
--target,这使得交叉编译极其容易。
Clang 在工业界被广泛使用,原因在于它具备:
- 出色的诊断和错误信息
- 快速的编译速度
- 干净的架构与模块化设计
- 对众多平台的支持(Windows、Linux、macOS、Android、WebAssembly 等)
- 与 GNU 和 MSVC 工具链的兼容性
在本教程中,Clang 是我们的主要编译器,因为它能为几乎所有平台生成二进制文件,
包括 Windows MSVC 二进制、Linux 二进制、macOS 二进制、Android 二进制
以及 WebAssembly 二进制。Clang 还能与本教程提供的 windows-msvc-sysroot
干净地集成,让你可以在任何操作系统上构建 MSVC 兼容的 Windows 可执行文件。
安装 Git
在下载工具链脚本之前,请确保你的系统已安装 Git。
- Linux:通过你的包管理器安装(例如
sudo apt install git) - macOS:通过 Homebrew(
brew install git)或 Xcode Command Line Tools 安装 - Windows:从 git-scm.com 安装
- Android(Termux):通过
pkg install git安装
克隆工具链构建脚本
本教程使用的 Clang 工具链是用作者的自动化构建脚本构建的。 使用以下命令之一克隆仓库:
git clone https://github.com/trcrsired/toolchainbuildscripts.git-
git@github.com:trcrsired/toolchainbuildscripts.git
(注意:在中国,SSH 克隆可能被防火墙屏蔽。)
克隆完成后,进入仓库目录即可访问安装脚本。
下载本地工具链
要下载适用于你当前宿主系统的工具链,请运行相应的脚本:
- Linux / macOS / BSD / Android:
./installs/host_download.sh -
Windows PowerShell:
./installs/windows/host_download.ps1
你可能需要以管理员身份运行 PowerShell,或临时绕过执行限制:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
你也可以通过设置环境变量来启用可选组件:
CLONE_WINDOWS_MSVC_SYSROOT=yes—— 克隆 Windows MSVC sysroot,用于构建 Windows 二进制文件CLONE_FAST_IO=yes—— 自动克隆 fast_io 库
下载全部工具链
如果你想要每一个受支持的工具链(而不只是本地的那一个),请使用 all_download 脚本:
- POSIX 系统:
./installs/all_download.sh - Windows:
./installs/windows/all_download.ps1
这些脚本会下载所有可用的工具链。
这种情况下,你不需要再运行 host_download。
故障排查
如果在安装过程中遇到问题:
- 检查你的网络连接与代理设置
- 确保 Git 与 PowerShell 的权限配置正确
- 检查你的 shell 是否有执行脚本的权限
- 向 Microsoft Copilot 或 ChatGPT 等 AI 助手求助,以诊断错误
工具链下载完成后,你就可以开始用 Clang 编译了。
手动安装(如果自动安装失败)
如果自动化安装脚本因网络问题、代理配置或平台限制而失败, 你可以直接下载预构建的发布版本来手动安装工具链。
- llvm-releases —— fast_io 作者的最新 Clang/LLVM 构建
- wavm-releases —— 包含 WebAssembly 内存标记支持(ACM CCSW 2025 论文: 链接)
- windows-msvc-sysroot —— 使用 Clang 构建 Windows 二进制文件所必需
-
fast_io 库
—— 使用
-b next克隆即可使用开发分支
下载压缩包或克隆仓库后,解压并手动配置你的环境变量:
- PATH:添加编译器的
bin目录 - LD_LIBRARY_PATH:(Linux/BSD/Android)添加工具链的
lib目录 - DYLD_LIBRARY_PATH:(macOS)添加工具链的
lib目录 - WINEPATH:如果使用 Wine 运行 Windows 二进制文件
如果你不确定如何手动重现自动化步骤,可以打开
host_download.sh 或 host_download.ps1 脚本并把它们交给 AI 助手
(例如 Microsoft Copilot 或 ChatGPT)。它会精确解释每一步做了什么,以便你手工复现。