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:无法从共享对象映射段:不允许操作

phantomjs无法打开共享对象文件

linux下 gcc可以编译hello.c arm-linux-gcc 无法找到libz.so.1

GDB“无法打开共享对象文件”问题

Roslaunch 无法打开共享对象文件:没有这样的文件或目录

无法打开已知的共享对象文件