/usr/bin/ld:在 Redhat 上找不到 /usr/lib64/libasan.so.0.0.0
/usr/bin/ld: cannot find /usr/lib64/libasan.so.0.0.0 on redhat
我通常在我的c/c ++程序中使用valgrind,但人们一直在推荐地址清理器,所以我想测试一下,但是我在Redhat系统上链接到它时遇到了问题。
我得到了以下代码:
$ 猫堆释放后使用.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 的红帽子上
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 共享对象:
$ 定位利巴桑
/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
有人可以指出我正确的方向吗?
谢谢
请安装其他库,
yum install libasan libubsan
参考: https://bugzilla.redhat.com/show_bug.cgi?id=1303766
看起来它正在寻找比您拥有的更早版本的库。尝试这样做,看看它说了什么:
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
.
我最近在装有 gcc 4.8.5 的 CentOS 7 系统上遇到了同样的问题。我在 https://rpmfind.net/linux/RPM/centos/7.7.1908/x86_64/Packages/libasan-4.8.5-39.el7.x86_64.html 找到了一个转速,并且能够启动并运行它。
相关文章:
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- /usr/bin/ld: cannot find -lc++
- 在 /usr/local/lib 下找不到库
- Linux ld 如何解释 -lSomething::AnotherSomething(如 /usr/bin/ld: 找
- 如何将构建的C++库安装到 /usr/include?
- 将 swig2.0 添加到 usr/bin/ 以运行 CMake
- /usr/include/c++/7/cstdlib:75:15:致命错误:stdlib.h:没有这样的文件或目录 #i
- Qt5 [make -snap] 无法正确编译:进程"/usr/bin/snap"代码 1 退出
- 为什么"/usr/include"不在 GCC 默认搜索路径中
- pip install uwsgi 失败,出现 /usr/local/include/string/string.h:7:10:致命错误:找不到'sstream'文件?
- bitbake-grpc交叉编译/配置失败,错误为c-ares::care引用文件/usr/lib/libcares.s
- 将 TensorFlow 链接到C++.Protobuf (/usr/local/include/google/prot
- /usr/bin/ld: build-debug/obj/gpsitem.o: 文件无法识别: 文件被截断
- /usr/bin/ld: cannot find -lGQt
- /usr/bin/ld:找不到本地 libmpifort.so
- Anaconda ImportError: /usr/lib64/libstdc++.so.6: 找不到版本 'GLIBCXX_3.4.21'
- /usr/bin/ld:在 Redhat 上找不到 /usr/lib64/libasan.so.0.0.0
- 如何解析 /usr/lib64/libstdc++.so.6:在我的 CGAL cmake 项目中找不到版本 'GLIBCXX_3.4.15'?
- ldd可执行文件如何找到/usr/lib64/libstdc++.so.6
- /usr/lib64/libstdc++.so.6:未找到版本"GLIBCXX_3.4.15"