在 Fedora 上安装 Clang 开发环境

Mar 01, 2025 • 预计阅读时间 1 分钟

测试环境使用的系统是 Fedora 41: https://fedoraproject.org/workstation/download

Clang 是编译器前端,后端还是默认依赖 GCC 的运行库实现,如果想要使用全套 Clang 工具链,需要额外安装 libcxxllvm-libunwind-staticllvm-libunwind-devel 运行库和 lld 链接器:

$ sudo dnf install clang lld libcxx libcxx-devel llvm-libunwind-static llvm-libunwind-devel

其中 llvm-libunwind* 是可选的,即使不链接到 llvm-libunwind 也会使用系统的 libgcc_s.so 进行栈回溯。

使用编译 C++ 源文件:

$ clang++ -std=gnu++23 -stdlib=libc++ -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -l:libunwind.a main.cc

参数 -l:libunwind.a 表示链接的是静态库 libunwind.a,由 llvm-libunwind-static 提供。

查看依赖关系:

$ ldd a.out
    linux-vdso.so.1 (0x0000ffff96a65000)
    libc++.so.1 => /lib64/libc++.so.1 (0x0000ffff96900000)
    libc++abi.so.1 => /lib64/libc++abi.so.1 (0x0000ffff968b0000)
    libm.so.6 => /lib64/libm.so.6 (0x0000ffff96800000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000ffff967c0000)
    libc.so.6 => /lib64/libc.so.6 (0x0000ffff965f0000)
    /lib/ld-linux-aarch64.so.1 (0x0000ffff96a20000)

如果是编译 C 源文件,需要把 clang++gnu++23libc++ 换成 clanggnu23libc

clang -std=gnu23 -stdlib=libc -fuse-ld=lld -rtlib=compiler-rt main.c
FedoraClang
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

在 Fedora 上使用 musl Clang

Xcode 16.3 下载模拟器离线安装包