gpt4 book ai didi

c++ -/usr/bin/ld : cannot find/usr/lib64/libasan. so.0.0.0 在 redhat 上

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:02:43 24 4
gpt4 key购买 nike

我通常为我的 c/c++ 程序使用 valgrind,但人们一直在推荐地址清理器,所以我想测试一下,但我在 redhat 系统上链接它时遇到问题。

我得到了以下代码:

$ cat heap-use-after-free.cpp

int main(int argc, char **argv) {
int *array = new int[100];
delete [] array;
return array[argc]; // BOOM
}

编译如下:

$ g++ -O -g -fsanitize=address heap-use-after-free.cpp

/usr/bin/ld: cannot find /usr/lib64/libasan.so.0.0.0
collect2: error: ld returned 1 exit status

在我安装了 libasan 的 redhat 上

sudo yum install libasan
[sudo] password for dingdongsong:
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
rh-network-tools-rhel-x86_64-server-7-prod | 1.5 kB 00:00:00
rhel-x86_64-server-7-custom-prod | 1.0 kB 00:00:00
rhel-x86_64-server-7-epel-prod | 1.5 kB 00:00:00
rhel-x86_64-server-7-prod | 1.5 kB 00:00:00
rhel-x86_64-server-7-rhscl-1-prod | 1.5 kB 00:00:00
rhel-x86_64-server-7-thirdparty-oracle-java-prod | 1.5 kB 00:00:00
rhel-x86_64-server-extras-7-prod | 1.5 kB 00:00:00
rhel-x86_64-server-optional-7-prod | 1.5 kB 00:00:00
rhel-x86_64-server-supplementary-7-prod | 1.5 kB 00:00:00
Package libasan-4.9.2-6.2.el7.x86_64 already installed and latest version
Nothing to do

使用以下 libasan 共享对象:

$定位libasan

/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libasan.a
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libasan.so
/opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/32/libasan_preinit.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libasan.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libasan_preinit.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libasan.a
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libasan.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libasan_preinit.o
/usr/lib64/libasan.so.1
/usr/lib64/libasan.so.1.0.0

谁能给我指出正确的方向。

谢谢

最佳答案

看起来它正在寻找比您拥有的更早版本的库。尝试这样做,看看它说了什么:

sudo yum install /usr/lib64/libasan.so.0.0.0

此外,您确定您的 gcc-c++ 软件包版本是最新的吗?

我在 CentOS 7 容器中使用的 libasan 软件包版本是这样的:libasan-4.8.5-36.el7_6.2.x86_64

关于c++ -/usr/bin/ld : cannot find/usr/lib64/libasan. so.0.0.0 在 redhat 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652211/

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