首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu 18+缺少Asan动态运行时

Ubuntu 18+缺少Asan动态运行时
EN

Stack Overflow用户
提问于 2021-07-29 06:33:10
回答 1查看 623关注 0票数 3

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

代码语言:javascript
复制
#include <cstdio>

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

有一个共享的消毒液库,即

代码语言:javascript
复制
clang++-12 -fsanitize=address -shared-libsan sample.cpp -o sample

在运行./sample时,我会得到以下错误

代码语言:javascript
复制
./sample: error while loading shared libraries: libclang_rt.asan-x86_64.so: cannot open shared object file: No such file or directory

我在本地机器(Ubuntu20.04和clang-12)以及我们的构建运行程序(Ubuntu18.04和clang-10)上得到了示例代码的错误。

我是不是漏掉了什么,还是我要向谁提交一个窃听器?(我看到的选项是Ubuntu或LLVM/Clang团队)

请注意,这一问题不同于在密切表决中被建议为重复的问题(相关问题作者在评论中证实了这一点)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-02 03:50:03

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

你可以自己使用。

代码语言:javascript
复制
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))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68571138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档