前言
过去一年,从java虚拟机转到了js虚拟机的开发,主要是针对v8引擎。
翻起以前写的博客,说好的写个深入分析java虚拟机系列文章,结果写了一篇就没下文了,囧啊。
最近,又有了时间,那么就让我们从v8虚拟机开始吧,继续未完的旅程。
第一篇的内容如下:
下载,编译v8代码
第一篇的内容,在google的v8项目主页都有详细的英文文档。
文档地址:https://github.com/v8/v8/wiki/Getting-Started-with-Embedding
环境准备
如果被墙了,估计要想办法翻过去^^
1. 下载depot_tools:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
2. 将depot_tools加入到path中,让shell可以找到对应的命令
mac下的命令为:
vi ~/.bash_profile
export PATH=$PATH:~/depot_tools/
3.下载v8 code
fetch v8
4. 切换到对应的分支
cd v8
git checkout -b 5.8 -t branch-heads/5.8
5. 配置编译文件
tools/dev/v8gen.py x64.release
6. 修改配置文件
gn args out.gn/x64.release
在文件中添加:
is_component_build = false
7. 编译
ninja -C out.gn/x64.release
做完以上步骤,会在out.gn/x64.release生成一系列文件。
比如v8的命令行工具d8, 可以通过out.gn/x64.release/d8运行
另外还有一个out.gn/x64.release/v8_hello_world, 是v8内置的用add on编写的c++小用例,又是经典的hello world
可以运行试试看。