记录下Windows编译Chromium的步骤
Windows下编译Chromium
再chromium的官方仓库上有具体的指导教程,各个操作系统的都有,windows的在:https://github.com/chromium/chromium/blob/main/docs/windows_build_instructions.md
windows下还是比较简单的,前提是一定要有一个稳定的代理和起码2M/s往上(越快越好)的网络,不然中途下载直接断掉会让人崩溃
系统要求
我是在虚拟机中编译的,搞一个干干净净的win10系统当作初始环境
- 至少8G的内存,我给了16G
- 至少128G的磁盘空间,我给了256G,在编译完成chromium的时候我看了下,一共占了快80G磁盘空间了
我用公司的机子(8G,256G磁盘)编译一共花了5个小时多,自己的笔记本一开始编译的飞快,后面散热顶不住cpu降频了导致都是9个小时往上,如果是云服务器的话我估计会编译得超快(无奈穷啊)
具体步骤
以下步骤要是有报错啥的,多百度百度看看,没准就能解决了,不过多次编译下来,个人感觉是没有问题的
- 先下载
depot_tools
和visual studio 2019
- 设置环境变量,将
depot_tools
加入PATH,设置变量vs2019_install
为vs2019安装路径,比如C:\Program Files (x86)\Microsoft Visual Studio\2019\
,设置变量DEPOT_TOOLS_WIN_TOOLCHAIN
为0 - 接着开一个cmd.exe,运行gclient,这里会下载很多编译要用到的东西,所以要走代理,不然会很慢,基本下载都是失败
- 创建一个文件夹,比如
mkdir chromium && cd chromium
- 最关键的来了:
fetch chromium
,这时候就开始下载chromium的源码了,一共要下载大概30多G的内容,所以要是代理不稳或者网络波动下就无了,我曾经有一次一整晚代理都走了100多G的流量,还是没下载成功,因为中途一直在重新下载,特别是下载到20多G的时候网络不行了导致重新下载能马上治疗好你的低血压;我记得在fetch中间加一个啥参数就不用下载这么多了,但是下载下来的源码就只是最新的,没有history,但是我们一般都是为了调试漏洞的,编译的都是老版本,所以还是老老实实的下载全部吧 - fetch好后,执行gclient sync,这一步应该是下载编译需要的源码和工具
- 这里有两种编译方法,一种是命令行直接编译:
gn gen out/Default
&&autoninja -C out\Default chrome
,你可以修改args.gn来调整编译参数。还有一种就是用ide来编译的:gn gen --ide=vs --filters=//chrome --no-deps out\Default
,然后用vs2019来打开out\Default下的all.sln来进行build就好,这个编译完之后好处是可以源码调试,推荐用这个
切换版本其实和v8一样,你可以用tag来进行切也可以用commit id来切,切完之后记得gclient sync一下在开始编译,编译老版本可能会出现奇奇怪怪的报错,多谷歌谷歌应该没啥问题
坑
这里当然少不了坑了,其实很多的坑都是代理和网络导致的
在编译比较老版本的chromium的时候,它会要求你用vs2017或者vs2015,这时候老老实实的就去下载vs2017或者vs2015就好了,千万别头铁用vs2019来,不然无数的报错会让你想砸了电脑,vs2017和vs2019可以共存的
老版本的chromium好像还要特定的winsdk,所以要根据报错信息来安装特定的winsdk版本
参考链接
https://github.com/chromium/chromium/blob/main/docs/windows_build_instructions.md