在mac

时间:2017-04-12 10:25:33

标签: android android-ndk cross-compiling v8

我尝试在Mac上为android构建v8。我的步骤如下:

  1. 安装depot_tools
  2. fetch v8
  3. cd v8
  4. git checkout branch-name(android的最后一个稳定版本)
  5. echo "target_os = ['android']" >> ../.gclient && gclient sync --nohooks
  6. make android_arm.release android_ndk_root=[full path to ndk]
  7. 它说

      

    没有归档符号表(运行ranlib)

    我搜索这个问题。这个州有一个bug。但它还没有解决。

    我尝试创建d8并推送Android设备。我该怎么办?

    修改

    v8指南提供了building with GN。 我使用gn gen out.gn/arm.release/ --args='is_debug=false android_ndk_root="/path/android-ndk" target_os="android" arm_arch="armv7-a" android_sdk_root="/path/android-sdk-r25" v8_static_library=true android_ndk_version="r11b"'

    传递ndk-root路径

    然后我运行ninja -C out.gn/arm.release/,错误如下:

      

    ndk / toolchains / arm-linux-androideabi-4.9 / prebuilt / darwin-x86_64 / lib / gcc / arm-linux-androideabi / 4.9.x / libgcc.a','obj / libv8_base.a'需要,缺少并没有已知的规则

    这是对的。因为我的libgcc在 4.9文件夹下不是4.9.x 。如何设置libgcc路径?

2 个答案:

答案 0 :(得分:1)

最新的构建说明位于https://github.com/v8/v8/wiki/Cross-compiling-for-ARM。任何说'#34; make android_arm"已经过时了。

但是,我不知道是否支持在Mac上安装Android版本。它肯定适用于Linux(因此您可以尝试在VM中)。如果某些东西不起作用,并且你想让它发挥作用,我们很乐意接受补丁;见https://github.com/v8/v8/wiki/Contributing

答案 1 :(得分:0)

我们将V8集成到了Skype for Android,并开源了Docker构建脚本: https://github.com/Microsoft/v8-docker-buildscript

随时重新使用它。这不是完全公平的解决方案,但可以在任何OS上复制。

V8团队也支持Linux构建基础结构,并且有据可查。

我们成功地在Mac上构建了它,但是发现它很难保持工作状态。最后,我们必须修补Android NDK,而chrome构建脚本检出了NDK的工作版本以及所有其他必需的工具。

使用docker脚本,团队中的任何工程师都可以从头开始构建引擎,而无需使用他所使用的操作系统。