Linux环境下构建AOSP时如何生成adb.exe等Windows二进制文件
在Linux下构建AOSP时生成Windows二进制文件的方法
问题背景
我在android-13.0.0_r41分支构建AOSP,使用的命令如下:
. build/envsetup.sh lunch aosp_arm-eng m all -j$(nproc)
相关环境变量配置:
PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=13 TARGET_PRODUCT=aosp_arm TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=generic HOST_ARCH=x86_64 HOST_2ND_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-5.4.0-150-generic-x86_64-Ubuntu-20.04.5-LTS HOST_CROSS_OS=windows HOST_CROSS_ARCH=x86 HOST_CROSS_2ND_ARCH=x86_64 HOST_BUILD_TYPE=release BUILD_ID=TQ2A.230405.003.E1 OUT_DIR=out
尽管已设置HOST_CROSS_OS=windows,但未生成Windows二进制文件,执行find out -name '*.exe'无结果,也找不到合适的m命令目标,请问如何在Linux下构建AOSP时同时生成Windows二进制文件?
解决方法
指定Windows专属构建目标:AOSP默认不会为全量模块构建Windows版本,仅部分工具支持跨平台编译。需使用带
win_前缀的目标命令,而非m all:- 构建Windows版adb:
m win_adb - 构建Windows版fastboot:
m win_fastboot - 构建所有支持Windows的工具集合:
m win_tools
- 构建Windows版adb:
安装交叉编译依赖:确保Linux环境已安装Windows交叉编译工具链,以Ubuntu为例:
sudo apt install mingw-w64正确配置环境变量:不要手动单独设置
HOST_CROSS_OS,应在lunch后通过set_build_var配置,再执行构建:. build/envsetup.sh lunch aosp_arm-eng set_build_var HOST_CROSS_OS windows m win_tools -j$(nproc)直接检查专属输出路径:Windows二进制文件默认生成在
out/host/windows-x86/bin/目录,可直接查看该路径:ls out/host/windows-x86/bin/
内容的提问来源于stack exchange,提问作者hdthky
相关产品推荐
相关产品推荐

