libz.so.1:无法打开共享对象文件
Posted
技术标签:
【中文标题】libz.so.1:无法打开共享对象文件【英文标题】:libz.so.1: cannot open shared object file 【发布时间】:2014-02-10 23:20:24 【问题描述】:我在 ubuntu 12.04 上遇到了一个问题:
/usr/lib/ndk/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/。 ./../../../arm-linux-androideabi/bin/as: 加载共享库时出错:libz.so.1:无法打开共享 目标文件:没有这样的文件或目录
我试过了
sudo apt-get install lib32z1
但它说
读取包列表...完成构建依赖树读取 状态信息... 完成 lib32z1 已经是最新版本。 0 已升级,0 个新安装,0 个要移除,610 个未升级。
请提出解决方案。
【问题讨论】:
【参考方案1】:这对我有用
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
【讨论】:
对于 CentOS,我需要同时安装 zlib 和 libgcc。百胜安装 zlib.i686 libgcc【参考方案2】:检查 libz.so.1 属于哪个包 (http://packages.ubuntu.com/lucid/i386/zlib1g/filelist) 后,您应该尝试安装 zlib1g:
sudo apt-get install zlib1g
正如@E-rich 所指出的,可能需要在包名称中添加一个 :i386 后缀,以便包管理器正确识别它:
sudo apt-get install zlib1g:i386
EDIT(用于 CentOS 或其他使用 yum
的发行版):
如果有人使用 CentOS(或任何其他使用 yum
的发行版)最终可能会阅读此问题,@syslogic 在 cmets 中提出了以下解决方案:
yum install zlib.i686
或者,对于 32 位二进制文件:
yum install zlib.i386
【讨论】:
这对我有用,只是做了一个小改动:sudo apt-get install zlib1g:i386
@Palak yum install zlib.i686
经过这么多搜索终于。 sudo apt-get install zlib1g:i386 工作。
2016 年 5 月,安装 zlib1g:i386 仍然适用于 ubuntu 15.10。 +1
Android Studio 2.2.3,Oracle Java 8,Android Build-Tools 23.0.2 in Ubuntu 16.04.1 amd64,这对我有用sudo apt-get install zlib1g:i386
【参考方案3】:
我已经下载了这些包:
libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 zlib1g然后我解压它们并将目录添加到我的~/.bashrc
中的LD_LIBRARY_PATH
。只需确保在路径中添加正确的目录即可。
【讨论】:
说实话 - 我不知道。我刚刚做了find `pwd` -type d | xargs | tr " " ":"
来生成所有子目录的完整列表。但可能有一些文档可以准确地说明它们是什么。我的时间很短,所以我不得不猜测:-)【参考方案4】:
查看以下链接: 特别是“安装 32 位库(如果您使用 64 位)”
https://github.com/meteor/meteor/wiki/Mobile-Dev-Install:-Android-on-Linux
【讨论】:
这终于对我有用了“sudo apt-get update; sudo apt-get install --yes lib32z1 lib32stdc++6”【参考方案5】:sudo apt-get install zlib1g:i386 在 Xubuntu 16.04 上修复了 Android 2.1.1 上的 Gradle 问题。
【讨论】:
【参考方案6】:对于 Fedora(可能对某人有用)
sudo dnf install zlib-1.2.8-10.fc24.i686 libgcc-6.1.1-2.fc24.i686
【讨论】:
【参考方案7】:对于 centos,只是 zlib 没有解决问题。我做到了
sudo yum install zlib-devel.i686
【讨论】:
【参考方案8】:对于 Arch Linux,它是来自 multilib 的 pacman -S lib32-zlib
,而不是 zlib
。
【讨论】:
以上是关于libz.so.1:无法打开共享对象文件的主要内容,如果未能解决你的问题,请参考以下文章
docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作
linux下 gcc可以编译hello.c arm-linux-gcc 无法找到libz.so.1