mac android 编译,Mac 下 Android 源码编译从零开始:Day Two--编译

接下来将两个压缩包解压到源码根目录 WORKING_DIRECTORY ,并分别运行两个解压后的 .sh 文件,cd 到 WORKING_DIRECTORY 目录,即源码根目录,分别在终端执行以下命令:

sh extract-huawei-angler.sh

复制代码

sh extract-qcom-angler.sh

复制代码

将驱动文件提取出来,放到新生成的 /vendor/ 目录下。

每组二进制文件都是压缩包中的一个自解压脚本。解压每个压缩包,从源代码树的根目录运行附带的自解压脚本,然后确认您同意附带的许可协议的条款。二进制文件及其对应的 Makefile 将会安装在源代码树的 vendor/ 层次结构中。

坑点:需要一直按enter,知道第8点的第e项,慢慢按,直到End,再按一次Enter就会提示你输入 “I ACCEPT” 来同意使用协议,之后才会提取出驱动文件到 /vendor/ 目录。

结束时会提示:

······

x vendor/qcom/angler/proprietary/iperf3

x vendor/qcom/angler/device-partial.mk

Files extracted successfully.

复制代码

如下图所示:

f97089aaeaf2baeffb6cece193bc661b.png

清理

为了确保新安装的二进制文件在解压后正确生效,请使用以下命令删除此前所有编译操作的已有输出:

make clobber

复制代码

坑点:由于Mac的SDK默认只有14的版本,编译需要的是14以下的SDK,因此执行 make clobber 时会报如下错误:

internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]

复制代码

如图所示:

297b4b941ba6d4fdc385fb918e0da2b5.png

05354cfcc2eed572ea987c251e3cc7b1.png

make clobber 清理成功如下图所示:

7a9bc1a90824e47cd4c6128a152ccb8e.png

Final Step: 执行编译

设置环境 使用 envsetup.sh 脚本初始化环境。请注意,将 source 替换成 .(一个点)可以省去一些字符,这种简写形式在文档中更为常用。

source build/envsetup.sh

复制代码

. build/envsetup.sh

复制代码

选择目标

使用 lunch 选择要编译的目标。确切的配置可作为参数进行传递。例如以下命令:

lunch aosp_arm-eng

复制代码

该命令表示针对模拟器进行完整编译,并且所有调试功能均处于启用状态。

如果您没有提供任何参数就运行命令,lunch 将提示您从菜单中选择一个目标。

所有编译目标都采用 BUILD-BUILDTYPE 形式,其中 BUILD 是表示特定功能组合的代号。

BUILDTYPE 是以下类型之一:

e789287f35dde9b3dbf95e046770da80.png

要详细了解如何针对实际硬件进行编译以及如何在实际硬件上运行版本,请参阅运行版本。

编译代码

请注意,本部分只是一个摘要,用于确保设置已完成。如需关于编译 Android 的详细说明,请参阅运行编译系统。

您可以使用 make 编译任何代码。GNU Make 可以借助 -jN 参数处理并行任务,通常使用的任务数 N 介于编译时所用计算机上硬件线程数的 1-2 倍之间。例如,在一台双核 E5520 计算机(2 个 CPU,每个 CPU 4 个内核,每个内核 2 个线程)上,要实现最快的编译速度,可以使用介于 make -j16 到 make -j32 之间的命令。

make -j4

复制代码

坑点:万事开头难,事实上运行了几次都是同一个结果:failed

7fabf2c836adafca5678b9a98ebab79a.png

谷歌查到解决方案:可能是heap size 不足,尝试修改 heap size 大小。 blog.csdn.net/qq_27061049…

JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8

-XX:+TieredCompilation -mx4096M}"

复制代码

64af0f343509b2245cfec538f592c632.png

7156892cfb5b36fbfde8a83c8d86cab4.png

运行还是同样的报错,说明不是 heap size 不足的问题。

终极解决方案,感谢大神:

内牛满面,很激动,终于编译通过了。事实证明,官方文档有很多坑都没指出来,如果仅仅跟随官方文档,只能是跟我这样一路含泪趟坑过来。本教程已经把该遇到的坑都埋了,请尽情享用,有遗漏之处,请不吝指出。

输入以下命令:

mm

复制代码

成功之后提示如下log:

make completed successfully (01:31 (mm:ss))

复制代码

如截图所示:

5f0d7b611dec5cf70fc78be73de592e3.png

接着 Replace prebuilt bison binary with patched binary

cp /Volumes/android/WORKING_DIRECTORY/out/host/darwin-x86/bin/bison /Volumes/android/WORKING_DIRECTORY/prebuilts/misc/darwin-x86/bison/

复制代码

Build

make -j4

复制代码

小坑点:到执行 make -j4 命令进行最终编译前,记得退回到源码根目录,此处为 WORKING_DIRECTORY

正常编译中的截图如下所示:

e8d6d00b3165c217e21be586f0bc16a4.png

最终编译成功之后的截图如下所示:

待补。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值