在做v8编译之前,请做好踩坑准备,这篇帖子是为了让其他同学遇到我这种类似的问题的时候有一个参考,不一定就一定能解决掉你的问题,毕竟在操作的时候各种因素都会影响最后的结果。
本人在编译时遇到的各种问题,也查阅无数资料,也算是比较好的解决了这些问题。同时保留及总结下来了相关步骤,如果按照我这些步骤没有差错的情况下,那么编译出来应该不是什么问题。
一、下载依赖安装工具首先进入v8的github地址 https://github.com/v8/v8
点击这个就下载了 会下载下来depot_tools的这个工具 然后解压出来 我这里解压到c盘的根路径,然后将depot_tools的路径加入到环境变量,在cmd中执行gclient,执行更新。
二、提取v8代码及依赖在c盘根目录创建v8文件夹,并cd v8
fetch v8
下面是切换版本 如果不切换版本就是最新版
cd v8
git checkout git checkout 8.2.77
gclient sync -v
记住 gclient sync的时候 要全程是在科学上网的情况下 不然 会出现很多未知情况
如果出现下图这种情况 那说明代有配置好 可以直接采用全局方式
当我们下载基本快要完成的时候 会出现如下图
如果 你出现这个错误 就是按照他的要求设置一下 set DEPOT_TOOLS_WIN_TOOLCHAIN=0 就可以了 然后再次输入指令gclient sync -v
再次运行之后 如果这个报错 是因为网络问题(你懂的) 他在下载的时候 会在这个后面打这个 . 这个符号 在图中可以看到一个done的 就说明下载完成了
如果出现报错的情况,请自行想办法解决。
出现上面两张图都是类似的 需要配置sdk目录或者vs的版本号等 按照下面给的参数进行配置就不会有这个提示了
当前编译使用的环境是vs2019
set WINDOWSSDKDIR=D:\Windows Kits\10\
set vs2019_install=D:\Microsoft Visual Studio\2019
set GYP_MSVS_OVERRIDE_PATH=D:\Microsoft Visual Studio\2019\Professional
vs安装完毕之后 我们继续gclient sync -v
如果看到下图 这样的有error的 解决方法非常简单 就是删除对应的文件夹 重新执行gclient sync -v
看到下图 这个时候基本就可以顺利安装好相关的依赖了 会出现如下图 只要没有报错 同时程序退出了 那依赖基本就算搞定了 就可以开始编译了
如果刚开始编译的时候 报错图下图 这里是原先采用过其他的编译方式报的错 所以最好是直接先装好这个软件在执行编译
这个时候 桌面右键个性化(win10系统下) 搜索添加或者删除程序 找到windows software Development Kit 点击修改勾上Debugging tools for windows 就可以了
三、开始编译 这里推荐三种编译方式 0、编译前的准备工作
在编译之前 需要先给depot_tools的文件夹加入环境变量 我这里depot_tools的工具是安装在e:\v8下 我就将e:\v8加入环境变量就可以了
1、编译call gn gen out.gn/x86.release --args="is_debug=false use_glib=false is_component_build=true v8_use_external_startup_data=true v8_static_library=false is_clang = false v8_enable_i18n_support=false target_cpu=\"x86\""
cd out.gn/x86.release
ninja
遇到错误继续执行ninja直到最后。
四、最终结果如下