gpt4 book ai didi

c++ - Ubuntu 18+ 上缺少 Asan 动态运行时

转载 作者:行者123 更新时间:2023-12-04 14:53:45 25 4
gpt4 key购买 nike

如果我编译一个简单的程序(sample.cpp):

#include <cstdio>

int main() {
printf("Hello, World");
return 0;
}

使用共享 sanitizer 库,即

clang++-12 -fsanitize=address -shared-libsan sample.cpp -o sample

运行 ./sample 时出现以下错误:

./sample: error while loading shared libraries: libclang_rt.asan-x86_64.so: cannot open shared object file: No such file or directory

我在本地机器(Ubuntu 20.04 和 clang-12)以及我们的构建运行器(Ubuntu 18.04 和 clang-10)上收到示例代码的错误。

我是不是遗漏了什么,或者我应该提交错误并提交给谁? (我看到的选项是 Ubuntu 或 LLVM/Clang 团队)

请注意,这个问题不同与在势均力敌的投票中被建议为重复的问题(链接问题的作者在评论中确认了这一点)。

最佳答案

这是 clang 前端的缺陷——当给定 -shared-libsan 标志时,它应该自动添加 -Wl,-rpath=/usr/lib/llvm-NN/lib/clang/MM.M.M/lib/linux 到链接行,但它没有。

您可以自己使用例如

CXX=clang++-12
$CXX -fsanitize=address -shared-libsan sample.cpp -o sample \
-Wl,-rpath=$(dirname $($CXX --print-file-name libclang_rt.asan-x86_64.so))

关于c++ - Ubuntu 18+ 上缺少 Asan 动态运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68571138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com