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

如何在Debian上用clang-22的-fsanitize=address避免链接错误?

问题:Debian Unstable/Experimental下clang-22搭配-fsanitize=address编译时链接错误

使用Debian Unstable/Experimental系统,用clang-22搭配-fsanitize=address编译代码时出现以下链接错误:

/usr/bin/ld: cannot find /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/libclang_rt.asan_static.a: No such file or directory
/usr/bin/ld: cannot find /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/libclang_rt.asan.a: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

测试用C代码示例:

#include <stdio.h>
#include <unistd.h>

int main() {
    printf("Hello, world!\n");
    *((volatile char*)NULL) = 3;
    return 0;
}

使用以下命令编译时触发错误:

clang-22 -O3 -Og hello.c -fsanitize=address,undefined -o hello

改用gcc-15编译则正常。尝试用apt-file search /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/libclang_rt.asan.a查找提供该库的包,无结果。


解决方法
  1. 安装LLVM Runtime开发包
    Debian中clang的sanitizer运行时库单独打包在对应版本的libllvm-<version>-rt-dev包中,执行以下命令安装:

    sudo apt update && sudo apt install libllvm-22-rt-dev
    

    安装完成后,clang所需的libclang_rt.asan.a和libclang_rt.asan_static.a会被放置到正确路径。

  2. 修复路径不匹配问题(如果安装后仍报错)
    部分情况下,Debian会将库文件安装到/usr/lib/x86_64-linux-gnu/llvm-22/而非clang默认查找的路径,可以先确认库的实际位置:

    find /usr/lib -name "libclang_rt.asan*.a" | grep llvm-22
    

    如果路径与报错中的路径不一致,创建软链接修复:

    sudo mkdir -p /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/
    sudo ln -s /usr/lib/x86_64-linux-gnu/llvm-22/lib/clang/22/lib/linux/libclang_rt.asan.a /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/
    sudo ln -s /usr/lib/x86_64-linux-gnu/llvm-22/lib/clang/22/lib/linux/libclang_rt.asan_static.a /usr/lib/llvm-22/lib/clang/22/lib/x86_64-pc-linux-gnu/
    
  3. 临时使用动态链接版ASAN
    如果不想处理静态库路径问题,可以编译时添加-shared-libasan参数,链接动态版本的AddressSanitizer库:

    clang-22 -O3 -Og hello.c -fsanitize=address,undefined -shared-libasan -o hello
    

    确保系统中已安装对应版本的动态asan库(如libasan8),通常会随LLVM包自动安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:13:10