前言
编译谷歌V8需要一个给力的科学上网,如果没有科学上网的同学,就可以放弃了。谷歌V8最新版本可以直接用VS2019编译,直接上步骤吧,宝宝也是掉了五天头发才搞出来的。
步骤
一、环境
- Visual Studio2019(安装C++相关的内容和组件,为了不引起没必要的错误浪费时间,个人建议,都安装C盘下面,因为编译的过程中,需要找头文件,而需要的WindowsSdk的头文件基本上都在C盘)
- Windows SDKs 10.1.19041.0,安装的过程需要选择Windows调试工具
- Python2.7(我选的2.7,官方说python2或者python3都可以)
- git
- SVN
二、环境变量
系统变量:
DEPOT_TOOLS_WIN_TOOLCHAIN=0
GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
GYP_MSVS_VERSION=2019
WINDOWSSDKDIR=C:\Program Files (x86)\Windows Kits\10
vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019
Path中需要添加的变量:
D:\V8\depot_tools(这是拉取V8代码工具的地址,后面步骤会提到,不明白的同学可以看到步骤1,路径必须放在第一个)
三、设置代理
代理需要设置全局的
git代理:
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
SVN代理:
首先,找到SVN的 servers 文件。路径为:C:\Documents and Settings\Administrator\Application Data\Subversion以文本方式打开 servers 文件,最后加入这段代码
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
# http-proxy-host = 127.0.0.1
# http-proxy-port = 1080
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
将 127.0.0.1换成 代理地址
将 1080换成 代理地址的端口
如果代理需要用户名和密码,那么
将 defaultusername 换成 自己代理的用户名
将 defaultpassword 换成 自己代理的密码
注意,需要将前面的注释符 # 去掉。
四、步骤
-
下载depot_tools,这个工具是用来获取V8源码的,新建一个V8的目录打开cmd,执行命令:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 把下载下来的depot_tools添加到环境变量
-
再创建一个目录v8来存放v8的源码,在此目录下打开cmd,输入gclient,这时候会拉取配置,这个请求需要科学上网,如果遇到报443的错误(如图),不要怀疑一定是代理的问题,检查一下代理是否配置正确
-
执行完毕后获取V8,输入fetch v8,这时候下载会比较慢,因为源码比较大,如果中途下载失败,输入gclient sync就可以继续下载
-
全部下载完毕后并且没有报错,就可以开始编译源码了,
-
在VS2019里编译
需要生成一个sln,cd到V8源码目录,输入gn gen --ide=vs out.gn\x64_solutio,在out.gn>x64_solutio目录下就会有一个all.sln,用vs2019打开all.sln进行编译,编译的过程比较久,一个小时左右,看电脑性能。 -
v8gen编译
使用v8gen编译就比较快,cd到V8源码目录,打开cmd,执行以下两个命令
python tools\dev\v8gen.py x64.release
ninja -C out.gn\x64.release
出现以下界面编译成功,打开out.gn>x64.release目录就可以看到编译成功的包。
- 编译成功后如图:
VS2019编译成功截图:
v8gen编译成功截图:
有问题的可以留言交流或者加QQ群:274407988
编译参考文章:
https://blog.youkuaiyun.com/liuhongyi0104/article/details/84980109
https://blog.youkuaiyun.com/qq_33958297/article/details/105331502
https://blog.youkuaiyun.com/qi1993315/article/details/80734045
https://blog.youkuaiyun.com/u011760195/article/details/109941227