linux下执行aapt时,提示/usr/lib/libz.so.1 no version information available

本文详细描述了如何解决RedHat Enterprise Linux环境中因aapt与zlib版本不匹配导致的错误。通过使用ldd命令检查动态库加载路径,对比安装的zlib版本,最终通过备份并覆盖高版本zlib包解决了问题。

【操作系统】:

Red Hat Enterprise Linux Server release 5.9 (Tikanga) 

Linux biz-03 2.6.18-348.el5 #1 SMP Wed Nov 28 21:22:00 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

【错误信息】:

./aapt: /lib/libz.so.1: no version information available (required by ./aapt)

【处理结果】:

次问题是由于zlib版本与appt编译的版本不一致导致(当前系统安装的版本比较低),网上有些帖子介绍升级zlib到最新版本,我是没搞定,后来直接将另一环境高版本zlib包覆盖过来即可

【备注】:执行覆盖前,请先做好备份

【分析过程】:

1)通过ldd命令查看加载的动态库路径:ldd aapt

libz.so.1 => /lib/libz.so.1 (0x00bb3000)
2)查看对应安装的版本:ll /lib/libz.so.1

3)发现版本较低,直接备份并覆盖

    资源下载地址

<think>嗯,用户遇到了在Ubuntu18上编译AOSP9出现aapt编译失败的特定错误,需要针对性解决方案。从提交的引用内容看,用户已经收集了相关线索:引用1提到64位环境下缺少32位兼容库的问题;引用2和引用3分别涉及X11头文件缺失和flex工具兼容性问题;引用4则暗示64位环境编译32位目标的库文件链接问题。结合这些线索和用户当前具体的失败点(out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/Main.o),问题可能集中在三个方面:首先是64位环境对32位编译的支持不足,其次是编译工具链的依赖缺失,最后可能是环境变量设置不当。尤其值得注意的是aapt工具在编译过程中会调用很多本地库,而X11开发库(libx11-dev)的缺失在引用2中已被证实会导致类似错误。用户的上个问题询问的是整个AOSP9编译流程,这次则聚焦在具体模块编译失败,说明用户已进入实际编译阶段且卡在工具链构建环节。考虑到aapt是资源打包的关键工具,这个问题必须优先解决。需要提供阶梯式解决方案:先检查基础依赖,再验证工具链,最后处理可能的符号链接问题。特别要注意引用3提到的flex工具崩溃案例,虽然错误信息不同,但同样是工具链问题。用户环境可能存在多种编译工具版本冲突,因此需要确认flex和bison的版本兼容性。此外,引用4暗示的32位库链接问题非常关键,因为AOSP9的host工具仍包含32位组件,解决方案中必须包含多架构支持检查和32位库安装验证。对于这个具体错误,最直接的突破口应该是:1)确保所有64位+32位混合编译依赖已安装(如ia32-libs替代方案)2)检查SDL/X11头文件是否存在3)验证libstdc++的32位符号链接分步验证的方式能帮助用户精准定位缺失环节。</think> 针对Ubuntu 18编译AOSP 9`FAILED: out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/Main.o`错误,请按以下步骤解决: --- ### **解决方案** #### **1. 安装32位兼容库(关键步骤)** ```bash sudo apt-get update # 安装多架构支持 sudo dpkg --add-architecture i386 # 安装核心32位库 sudo apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386 # 安装开发依赖项 sudo apt-get install gcc-multilib g++-multilib lib32z1-dev libx11-dev:i386 ``` > **说明**:AOSP工具链含32位组件,需32位运行库支持[^1][^4] #### **2. 验证库文件链接** ```bash # 检查32位库链接(重点确认libstdc++) ls -l /usr/lib/i386-linux-gnu/libstdc++* # 若缺失链接,手动创建(需root权限) sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/i386-linux-gnu/libstdc++.so ``` #### **3. 修复X11头文件缺失** ```bash # 安装X11开发包(解决Xlib.h报错[^2]) sudo apt-get install libx11-dev libxext-dev libxtst-dev ``` #### **4. 清理并重试编译** ```bash # 清除错误编译缓存 make clean # 单线程重试编译(定位问题) make -j1 aapt ``` > 成功后恢复并行编译:`make -j$(nproc)` --- ### **进阶排查** 若仍失败,检查以下位置: 1. **编译日志细节** ```bash # 查看完整报错信息 cat out/error.log | grep -C 10 "Main.o" ``` 2. **Python环境验证** ```bash # 确认使用Python2(AOSP9强制要求) export PYTHON_VERSION=python2.7 python --version ``` 3. **内存限制调整** ```bash # 防止OOM崩溃(特别是<32GB内存设备) export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m" ./prebuilts/sdk/tools/jack-admin kill-server ./prebuilts/sdk/tools/jack-admin start-server ``` --- ### **预防措施** ```diff # 完整依赖清单(新增32位相关包) sudo apt install libc6-dev-i386 lib32stdc++6 lib32z1-dev \ + libx11-dev:i386 lib32ncurses5-dev gcc-multilib g++-multilib ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值