我尝试在Mac上为android构建v8。我的步骤如下:
echo "target_os = ['android']" >> ../.gclient && gclient sync --nohooks
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"'
然后我运行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路径?
答案 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脚本,团队中的任何工程师都可以从头开始构建引擎,而无需使用他所使用的操作系统。