Build V8 JS Engine with Visual Studio 2017 on Windows

Build V8 JS Engine with Visual Studio 2017 on Windows

刚尝试了在Windows上build V8,官方文档和网上的一些文章(比如这里)是基于Visual Studio 2013,内容有些繁琐和不全面。所以我把自己在VS 2017里面build最新V8的的过程以及一些坑记录下来供大家参考(其中某些步骤已完成则可跳过)。当前系统是Windows 10 RS3(16299) X64版本。另外这个build还是很耗资源的,推荐8G内存,磁盘剩余空间10G以上的环境。

  1. 安装Visual Studio 2017,community版本就可以(链接),最好安装到到C盘的默认路径,因为在build脚本里面硬编码了这些路径。
  2. 安装Git for Windows(链接)。
  3. 设置git cookie: 访问和参考chromium.googlesource.com。这个页面会显示两条命令设置git客户端cookie, 直接执行相应命令即可。
  4. 这里下载安装Windows SDK (15063)版本,在安装过程里面需要选择SDK和"Debugging tools for Windows"。
  5. 启动 "VS 2017 X64 Native Tools" 命令窗口。
  6. 在步骤5的命令窗口里切换到合适的空目录存放源代码和生成的二进制文件(比如c:\v8),然后运行下面环境设置命令。
    1. git clone chromium.googlesource.com (此处URL会被知乎缩写,拷贝出URL然后运行git clone吧)。
    2. set PATH=C:\v8\depot_tools;%PATH%
    3. set DEPOT_TOOLS_WIN_TOOLCHAIN=0
    4. set GYP_MSVS_VERSION=2017
  7. 获取源代码和生成build。
    1. fetch v8
    2. cd v8
    3. python tools\dev\v8gen.py x64.release
    4. ninja -C out.gn\x64.release
  8. 所有build生成的二进制文件(包括d8.exe)会在out.gn\x64.release目录下面,整个build可能需要数十分钟。需要生成VS项目文件然后在VS IDE里面build的则需要在7.2后面运行"gn gen --ide=vs out.gn\x64_solution"。

上面就build了最新的V8,如果是想要build某一个版本的Chrome对应的V8,可继续用下面的步骤:

  1. http://omahaproxy.appspot.com 找到相应Chrome版本对应的V8版本,比如Chrome canary的67.0.3379.0对应了V8的6.7.142.0。
  2. 在前面V8源码路径下运行 "git checkout 6.7.142.0"。
  3. 运行7.4的命令做build。
  4. 生成的二进制文件同样在out.gn\x64.release下面。

文章被以下专栏收录