从 import std 开始:现代 C++ 工具链最佳实践
TL;DR:xclang 是我们为 clice 开发的 Clang 交叉编译工具链,其实就是 Clang 版的 rustup,把编译器、链接器,以及 Linux、Windows、macOS 的 x64 和 arm64 一共六个目标的 sysroot 和预编译好的运行时打包在一起,整个包不到 100 MB,加一个 --target 就能交叉编译。编译出的程序会把 C++ 运行时静态链接进去,拷一个文件过去,就能在 glibc 2.17 以上的 Linux、Windows 10 以上和 macOS 13 以上的系统上运行。Apple 和 Microsoft 的 SDK 没有打包进去,用户可以用 xclang sdk fetch 从官方下载,这样在 Linux 上也能编译 macOS 和 MSVC 目标。它可以直接在 CMake 和 Bazel 中使用,import std 开箱即用。编译器本身使用 PGO + ThinLTO 构建,C++ 的编译速度和 LLVM 官方的发布版本基本持平,在 Windows 上还要更快。 ...