“/usr/bin/ld:找不到 -lz”
- 2024-10-17 08:47:00
- admin 原创
- 69
问题描述:
我正在尝试在 Ubuntu 10.04 下编译 Android 源代码。我收到一条错误消息,
/usr/bin/ld:找不到 -lz
你能告诉我如何修复它吗?这是什么cannot find -lz
意思?以下是完整的错误消息:
external/qemu/Makefile.android:1101: warning: overriding commands for target `external/qemu/android/avd/hw-config-defs.h'
external/qemu/Makefile.android:933: warning: ignoring old commands for target `external/qemu/android/avd/hw-config-defs.h'
host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] Error 1
我的 GCC 版本输出:
scheung@scheung-virtual-box:/media/EXTDIV/mydroid$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我已经zlib1g-dev
安装了该库:
$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g-dev is already the newest version.
(我从这个链接获得这个信息。)
解决方案 1:
我遇到了完全相同的错误,和您一样,安装 zlib1g-dev 也没有解决问题。安装 lib32z1-dev 让我解决了这个问题。我有一个 64 位系统,它似乎需要 32 位库。
解决方案 2:
对于 x64 安装zlib1g-dev
。
sudo apt-get install zlib1g-dev
我不需要所有的 x86 库;)
解决方案 3:
sudo apt-get install libz-dev
在 ubuntu 中。
解决方案 4:
我刚刚遇到这个问题,与公认的解决方案“你的 make 文件坏了”和“主机包含永远不应该包含在交叉编译中”相反
android 构建包括 SDK 用于构建 android 应用的许多主机可执行文件。在我的例子中,make 在构建 zipalign 时停止,zipalign 用于在 android 设备上安装之前优化 apk。
安装 lib32z1-dev 解决了我的问题,在 Ubuntu 下您可以使用以下命令安装它:
sudo apt-get install lib32z1-dev
解决方案 5:
我遇到了完全相同的错误,安装 zlib-devel 解决了我的问题,键入命令并安装 zlib 包。
在 Linux 上:
sudo apt-get install zlib*
在 Centos 上:
sudo yum install zlib*
解决方案 6:
这意味着您要求它包含包含压缩包的库“libz.a”或“libz.so”,尽管编译器找到了一些文件,但没有一个适合您正在使用的构建。
您要么需要更改构建参数,要么需要安装正确的库,或者需要使用-L/where/it/is/lib
类型选项在链接命令行上指定正确的库的位置。
解决方案 7:
另一个可能的原因:您已将 --static 传递给链接器,但您只有 libz 的动态版本 (libz.so),而没有可以静态链接的版本 (libz.a)。
解决方案 8:
尝试这三种解决方案之一。它一定有效 :) :
sudo apt-get 安装 zlib1g-dev
sudo apt-get 安装 libz-dev
sudo apt-get 安装 lib32z1-dev
实际上缺少的不是命令lz
,而是库的开发文件。因此zlib
您应该安装zlib1g-dev
ex 的 lib 来获取它。
对于 rhel7 之类的系统,该软件包是 zlib-devel
解决方案 9:
这将向您显示有关链接器不需要安装的库的原因的线索:
LD_DEBUG=all make ...
我在不同的环境中遇到了同样的问题:因为我试图在不同版本的操作系统上重新链接,所以我的系统 /lib/libz.so.1 对 libc 的依赖性未得到满足。
解决方案 10:
对于 opensuse 12.3 (Dartmouth) (i586) sudo zypper install zlib-devel zlib-devel-static
解决方案 11:
其他人提到 lib32z-dev 解决了这个问题,但一般来说,所需的软件包可以在这里找到:
http://source.android.com/source/initializing.html
请参阅“安装所需的软件包”
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件