内容纲要

google 的仓库都需要 depot_tools 工具集来拉代码。先要配置 depot_tools,直接使用 electron 编译那套配置。虽然在 github 上有 v8 镜像,但是不知道如何生成 .gclient 文件,还是从 chromium 仓库来拉。

更新代码

cd v8
fetch v8
cd v8
git pull
gclient sync -f       # 会生成 .gclient 和 .gclient_entries

编译

python tools\dev\v8gen.py list

output:

android.arm.debug
android.arm.optdebug
android.arm.release
arm.debug
arm.optdebug
arm.release
arm64.debug
arm64.optdebug
arm64.release
ia32.debug
ia32.optdebug
ia32.release
mips64el.debug
mips64el.optdebug
mips64el.release
mipsel.debug
mipsel.optdebug
mipsel.release
ppc64.debug
ppc64.debug.sim
ppc64.optdebug
ppc64.optdebug.sim
ppc64.release
ppc64.release.sim
s390x.debug
s390x.debug.sim
s390x.optdebug
s390x.optdebug.sim
s390x.release
s390x.release.sim
x64.debug
x64.optdebug
x64.release
x64.release.sample

生成 debug 版

python tools\dev\v8gen.py ia32.debug
gn args out.gn\ia32.debug

修改 args.gn 内容如下

is_component_build = false
is_debug = true
target_cpu = "x86"
v8_enable_backtrace = true
v8_enable_slow_dchecks = true
v8_optimized_debug = false
v8_monolithic = true
v8_use_external_startup_data = false

开始编译

# 静态库
ninja -C out.gn\ia32.debug v8_monolith

visual studio 方式编译

# 生成 sln 解决方案
gn gen --ide=vs out.gn\x64_solution

现在用 vs2017 编译的 v8 静态库无法链接,好像是用了 clang,关闭 clang 缺无法编译通过;编译动态库,却也链接不过。

参考

发表评论

电子邮件地址不会被公开。 必填项已用*标注