1. 找不到libz.so.1

1.1 问题描述:

在Debian虚拟机上进行交叉编译,编译链gcc是arm335x(arm-arago-linux-gnueabi-),使用arm-arago-linux-gnueabi-gcc进行编译时,报错如下:

/opt/am335x/linux-devkit/bin/../libexec/gcc/arm-arago-linux-gnueabi/4.5.3/cc1: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

1.2 问题原因:

系统的环境变量里没有配置相关路径,导致无法找到合适的libz.so.1,该文件用于支持32位程序运行

1.3 解决步骤:

查找系统中所缺库文件的路径

# find / -name libz.so.1
/usr/lib/vmware-tools/lib64/libz.so.1
/usr/lib/vmware-tools/lib64/libz.so.1/libz.so.1
/usr/lib/vmware-tools/lib32/libz.so.1
/usr/lib/vmware-tools/lib32/libz.so.1/libz.so.1
/usr/lib/x86_64-linux-gnu/libz.so.1
/opt/sdt_agent/lib/libz.so.1
/opt/am335x/linux-devkit/arm-arago-linux-gnueabi/usr/lib/libz.so.1
/root/sdt_agent/lib/libz.so.1

 根据搜索结果的路径,可判断需要的是/usr/lib/vmware-tools/lib32/libz.so.1/libz.so.1,将该文件的父目录添加到系统库搜索路径即可

echo "/usr/lib/vmware-tools/lib32/libz.so.1" >> /etc/ld.so.conf.d/vmware-tools-libraries.conf

然后使配置文件生效,即可

ldconfig

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐