You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

源码编译Clang后使用-fsanitize=address提示找不到libclang_rt.asan

解决从源码编译Clang后无法使用AddressSanitizer的问题

你遇到的错误根源很明确:编译Clang时没有包含compiler-rt子项目,而AddressSanitizer(ASAN)依赖的运行时库正是由compiler-rt提供的,所以安装后的Clang缺少对应的库文件。

你的原编译命令只开启了clang和clang-tools-extra项目,漏掉了compiler-rt,修正步骤如下:

  1. 清理原编译目录(可选但推荐,避免缓存干扰):
rm -rf build
  1. 重新执行CMake配置,将compiler-rt加入启用项目列表:
cmake -S llvm -B build -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" -DCMAKE_BUILD_TYPE=Release
  1. 重新编译并安装:
ninja -C build
sudo ninja -C build install

完成后,再次执行clang -fsanitize=address hello.c就能正常链接ASAN库,编译通过了。

内容的提问来源于stack exchange,提问作者MWB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:25:12