out/host/linux-x86/obj/EXECUTABLES/mksnapshot_intermediates/src/accessors.o]错误1

在Ubuntu12.10系统中,编译Android2.3代码时遇到GCC和G++版本不兼容导致编译失败的问题。通过将GCC和G++降级到4.4.7版本并完成相关依赖安装,成功解决了此问题。在编译过程中,还需解决g++ selected multilib '32' not installed的错误,最终确保了代码的正确编译。

在用Ubuntu 12.10 64bit系统编译android 2.3代码时,一直都编译不过去,不知到什么原因,后来发现好象是因为gcc和g++为4.7与android 2.3 code 不兼容,因此需要为g++ 和 gcc 降级,同时降为4.4.7。 g++ 和 gcc版本必须一致,否则会报错。

sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4

然后执行一下命令进行版本切换,

切换gcc:

   rm -rf /usr/bin/gcc

  sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

  然后使用 gcc -v 检查版本。

切换g++ 步骤一样。

然后继续编译,期间可能还发生g++ selected multilib '32' not installed的错误,需要:
sudo apt-get install g++-4.4-multilib
然后继续编译

<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 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值