Ubuntu 20编译Android 12 AOSP衍生源码遇LLVM内部错误求助
解决Ubuntu 20编译Android 12 AOSP时clang++.real执行格式错误
问题分析
你遇到的exec format error是预编译Clang工具无法在当前系统上执行的典型表现,常见原因包括:工具架构与系统不匹配、文件损坏、权限不足或依赖缺失——该问题和交换空间无关,所以增大交换空间无法解决。
解决方案
按以下步骤逐一排查:
验证Clang工具架构兼容性
执行命令检查工具的架构:file prebuilts/clang/host/linux-x86/clang-r416183b1/bin/clang++.real正常输出应包含
x86-64字样,如果显示其他架构(如aarch64),说明同步源码时拉取了错误的预编译包,重新同步对应模块:repo sync -c prebuilts/clang/host/linux-x86修复工具可执行权限
检查工具是否有执行权限:ls -l prebuilts/clang/host/linux-x86/clang-r416183b1/bin/clang++.real如果输出中没有
x权限位,执行以下命令添加权限:chmod +x prebuilts/clang/host/linux-x86/clang-r416183b1/bin/*清理编译环境并重新构建
旧的编译缓存可能导致冲突,清理后重新初始化:make clean && rm -rf out/ source build/envsetup.sh lunch <你的编译目标,比如aosp_x86_64-eng> make -j$(nproc)补全系统编译依赖
Ubuntu 20编译Android 12需要完整的依赖包,执行以下命令安装:sudo apt update && sudo apt install -y libncurses5-dev libncursesw5-dev zlib1g-dev libssl-dev flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
补充说明
如果以上步骤都无效,可能是源码同步过程中文件损坏,建议删除整个预编译Clang目录后重新同步:
rm -rf prebuilts/clang/host/linux-x86/clang-r416183b1 repo sync -c prebuilts/clang/host/linux-x86/clang-r416183b1
内容的提问来源于stack exchange,提问作者fielding zhou
相关产品推荐
相关产品推荐

