【问题标题】:V8 build for android on mac在 Mac 上为 android 构建 V8
【发布时间】:2017-04-12 10:25:33
【问题描述】:

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

  1. 安装 depot_tools
  2. 获取 v8
  3. cd v8
  4. git checkout 分支名称(Android 的最新稳定版本)
  5. echo "target_os = ['android']" >> ../.gclient && gclient sync --nohooks
  6. make android_arm.release android_ndk_root=[full path to ndk]

上面写着

没有存档符号表(运行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'需要,丢失并且没有已知的规则来制作它

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

【问题讨论】:

  • 自上次发帖以来你有什么进展吗?
  • 你在third_party/android_tools/下没有ndk

标签: android android-ndk cross-compiling v8


【解决方案1】:

最新的构建说明位于https://github.com/v8/v8/wiki/Cross-compiling-for-ARM。任何说“make android_arm”的东西都过时了。

但是,我不知道是否支持在 Mac 上为 Android 构建。它绝对适用于 Linux(因此您可以在 VM 中尝试)。如果某些东西不起作用,而您想让它起作用,我们很乐意接受补丁;见https://github.com/v8/v8/wiki/Contributing

【讨论】:

  • 如何使用外部 ndk 构建 v8?交叉编译指南没有说什么。我运行'export ANDROID_NDK=/path/to/ndk'。然后运行'ninja -C out.gn/arm.release d8'。它说没有找到 ligcc。指南不足以构建 v8。
  • 为了方便,默认使用通过gclient签出的NDK。使用自己的最简单的方法可能是覆盖它,查看third_party/android_tools/
  • 我删除了ndk并将外部ndk移动到third_party/android_tools/下。但它不起作用。
【解决方案2】:

您不需要设置 ANDROID_NDK。

第 5 步:"target_os = ['android']" >> ../.gclient && gclient sync" 将 ndk 下载到 "third_party/android_tools/ndk"

ndk_version 必须 >= 12.b

【讨论】:

    【解决方案3】:

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

    随意重复使用它。这不是完全公平的解决方案,但它可以在任何操作系统上重现。

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

    我们成功地在 Mac 上构建了它,但发现它很难在工作状态下维护。最后,我们不得不修补 Android NDK,同时 chrome 构建脚本检查 NDK 的工作版本和所有其他必需的工具。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2019-09-12
      • 2011-08-22
      • 2022-06-15
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多