Windows10下编译chromium

一、准备工作

1、网络要求

  需访问外网。极其重要,稳定可靠的梯子。否则后期下载超过10G的代码将是一场噩梦。

2、系统要求

  • 64位Intel机器,至少8GB内存,建议16GB内存以上。
  • 硬盘空间至少100GB,NTFS格式。 FAT32 不可以。
  • Visual Studio 2017 (>=15.7.2) ,推荐  VS2019 (>=16.0.0)。
  • Windows 7以上,我使用的是Windows10。

二、主要内容

1、安装win10系统。

2、安装Visual Studio 2017社区版。

  默认安装路径不建议更改,后续Running hooks时可能报错,也可能我的环境变量设置不正确。

$ PATH_TO_INSTALLER.EXE ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--includeRecommended

  我的windows10系统不支持安装vs2019,因为我的是ghost版的,也无法自动更新系统。

3、安装版本10.0.18362或更高版本的Windows 10 SDK。

  可以单独安装它,也可以在Visual Studio安装程序中选中相应的框。还必须安装SDK调试工具。

  如果Windows 10 SDK是通过Visual Studio安装程序安装的,则可以通过以下方式安装它们:控制面板→程序→程序和功能→选择“ Windows软件开发工具包”→更改→更改→选中“ Windows调试工具” ”→更改。

4、安装配置 depot_tools

  下载 depot_tools,解压这个压缩包,不要用压缩工具打开后用拖拽的方式获取文件,这样会漏掉隐藏的 .git 文件。

  修改 Path环境变量,修改系统环境变量中的 Path ,在最前面添加depot_tools解压后所在目录,如C:\depot_tools。

  添加 DEPOT_TOOLS_WIN_TOOLCHAIN 环境变量,并将值设为 0。

  新打开一个 cmd 命令行窗口(保证环境变量设置生效),执行 gclient 命令(不带任何参数),此过程将安装 msysgit and python。

5、下载代码

  配置git。

$ git config --global user.name "My Name"
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always

  创建源码目录并进入。

$ mkdir chromium && cd chromium

  下载代码。想节省时间,加了--no-history 选项。

$ fetch --no-history chromium

   下载过程耗时较长,只要网络稳定可以下载成功,但是下载完执行Running hooks时坑比较多。期间网上查过,分析过python代码,最后通过重新安装vs2017,设置若干环境变量得以解决。

  GYP_GENERATORS = msvs-ninja,ninja

  GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Community

     GYP_MSVS_VERSION = 2017

  vs2017_install = C:\Program Files (x86)\Microsoft Visual Studio(应该无用)

  WINDOWSSDKDIR = C:\Program Files (x86)\Windows Kits\10

6、编译配置

  进入 src 目录,执行后续操作。

  chromium 是用 Ninja 编译的,编译前首先要有 .ninja 描述文件,而这个文件又是通过 gn 这个工具生成的(已经有了,自带的)。

  下面是几种生成方式,根据你的需要选择一种:

  gn gen out\Default,将编译后的结果放到out目录下的Default中,out是固定的写法,Default可以自己取名;

  gn gen --ide=vs out\Default,这个命令会在Default目录下生成all.sln,用vs studio中打开这个文件就可以查看调试chromium的源码了;

  gn gen --ide=vs --filters=//chrome out\Default,因为源码中有上千个项目,filters可以设置只生成你感兴趣的项目。

  我的执行过程如下:

  我第一次执行gn gen out/wzg时报错了,因为WINDOWSSDKDIR环境变量设置错误了。WINDOWSSDKDIR环境变量修改为C:\Program Files (x86)\Windows Kits\10后,执行成功。

  然后我执行gn gen --ide=vs out\vs2017也成功了。

  执行devenv out\vs2017\all.sln失败,提示devenv不是指令。

  将C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE添加到环境变量PATH中第二位置。

  再次执行devenv out\vs2017\all.sln,vs2017卡死,可能需要加载太多文件,我的笔记本配置太Low了。

  最后执行了如下指令:

gn gen --ide=vs --filters=//chrome --no-deps out\vsmin

7、编译chrome

  执行如下指令。从14:45至24:00才编译完成。

ninja -C out/vsmin chrome

8、启动chrome

  进入D:\chromium\src\out\vsmin,打开chrome.exe,成功启动浏览器。

参考资料:

参考官方链接:

https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md

参考其它链接:

http://www.yka365.com/articles/2020/01/09/1578555738486.html

https://note.youdao.com/ynoteshare1/index.html?id=a75f214006c7e47641f2689c65cdae1c&type=note

https://blog.csdn.net/Vincent95/article/details/78469807

https://juejin.im/post/5a45ab5651882525ab7c17ef

https://segmentfault.com/q/1010000008147029/a-1020000008154558

posted @ 2020-02-17 11:10  夜半弯  阅读(355)  评论(0编辑  收藏  举报