c - 在 FreeBSD 10.1 版本上链接 clang 地址 sanitizer

标签 c clang llvm freebsd

我试图让地址清理器在 FreeBSD 10.1 版本上工作,但每当我尝试使用 -fsanitize=address 编译程序时,我都会得到对 _asan_stack_malloc_1 的 undefined reference 等等等等我发现
https://forums.freebsd.org/threads/gcc-clang-address-sanitizer.47985/在谷歌上,但添加 -L/usr/local/lib -I/usr/local/include 的建议没有解决链接问题。我尝试了 FreeBSD 的 llvm 二进制文件,但是当我用那个 clang 编译时,我得到了 /usr/bin/../lib/clang/3.6.0/lib/freebsd/libclang_rt.asan-x86_64.a ,没有这样的文件或目录。。无论哪种方式,我都不确定我需要链接哪个库或它在哪里。

下面是我尝试编译的程序,这是我使用的命令, clang -fsanitize=address san.c

#include <stdio.h>

int main(void)
{
    return 0;
}

最佳答案

作为构建 LLVM 的替代方案,as suggested in this answer on Unix SE ,您可以从支持 AddressSanitizer 的端口安装 llvm37,并使用它进行构建:

# pkg install llvm37
$ clang37 -fsanitize=address san.c

关于c - 在 FreeBSD 10.1 版本上链接 clang 地址 sanitizer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085036/

相关文章:

python - 在 C 代码中找不到库

c - 这怎么是悬空指针?

c - 在 main 函数中使用变量通过 main 外部的 malloc 定义数组的大小?

c++ - 具有常量/非常量指针类型的模板的自动类型转换

c++ - #pragma 警告 clang/msvc 兼容性

c++ - C-定义宏的预处理器

c++ - 如何使用 PCH 或 PTH 提高 clang 解析性能?

c++ - 铛++警告: "warning: unknown warning option ' -Wno-maybe-uninitialized'"

c++ - 如何从 clang-tidy 中的 CStyleCastExpr 匹配器获取宏名称?

optimization - LLVM 执行哪种优化?