交叉编译问题汇总
在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 sh
·
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
更多推荐
已为社区贡献2条内容
所有评论(0)