Ubuntu 18+ 缺少 Asan 动态运行时
Asan dynamic runtime is missing on Ubuntu 18+
如果我编译一个简单的程序(sample.cpp
):
#include <cstdio>
int main() {
printf("Hello, World");
return 0;
}
使用共享消毒剂库,即
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
到link 行,但它没有。
您可以自己使用
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))
如果我编译一个简单的程序(sample.cpp
):
#include <cstdio>
int main() {
printf("Hello, World");
return 0;
}
使用共享消毒剂库,即
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
到link 行,但它没有。
您可以自己使用
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))