基于VS2019的Chrome(2021年版本)浏览器编译实践

2022-06-14 08:57:02 浏览数 (1)

     前面我们在客户端开发漫谈中提到electron客户端方案,该方案是借助用chromium浏览器来对图形,音视频进行解码和渲染的,而chromium就是google chrome浏览器的开源版本,本文将对chrome浏览器的开源版本的下载和编译进行实战,后面我们将对chrome代码进行二次开发进行展开,以满足electron业务发展需求或者浏览器定制开发,或者加深对chrome浏览器工作原理的理解。

系统环境

1)操作系统:win10或更新

2)内存至少8G以上,推荐16G编译更快

3)至少100G磁盘

4)至少Visual Studio 2017 (>=15.7.2) 编译环境, 不过VS2019 (>=16.0.0) 以上更好,笔者采用的是VS2019。

一、环境安装

  1. )安装VS2019,个人使用选择社区版即可。

    VS2019需要安装C 桌面开发应用;包含“Desktop development with C ” 组件 和“MFC/ATL support” sub-components,其中SDK需要win10 SDK(10.0.19041.0以上)。

   这里的坑:1)安装Windows SDK版本不对 2)Windows SDK默认安装没有windbg,即系统没有C:Program Files (x86)Windows Kits10Debuggersx64 目录,需要在控制面板找到windows soft develop kit,增加debugging tools for windows。

2)安装depot_tools工具

下载地址https://storage.googleapis.com/chrome-infra/depot_tools.zip,并解压到D盘,将该路径加入path环境变量;同时在环境变量中增加DEPOT_TOOLS_WIN_TOOLCHAIN = 0(即告诉depot_tools使用本地安装VS,不要google社区更新);

3)开启一个cmd控制台,运行gclient命令,gclient会自动更新环境,安装git和python环境(如果已经安装git和python,此步可以跳过)

二.下载

下载是一个痛苦的过程,不过不要灰心,选择一个好的本地网络,同时避开网络高峰,多试试,还是可以的。

1)配置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

2) 创建目录

$ mkdir chromium && cd chromium

3)下载代码

$ fetch chromium

如果不想下整个仓库,只下最新代码,可以使用fetch --no-history chromium,减少下载量。

三.编译

1)配置生成VS解决方案

gn gen --ide=vs2019 --filters=//chrome;//media/* --no-deps outdebug --args="is_component_build = true enable_nacl = false is_debug = true blink_symbol_level = 0"

最后生成含15880个工程的解决方案

                                                                   配置生成

                                               Chrome 配置生成的VS解决方案

2)打开VS解决方案,选择chrome项目,生成即可

                                          Chrome解决方案打开视图

生成过程也是一个漫长过程,毕竟整个解决方案15880个工程,而某些工程也是依赖第三方库,异常的庞大,我是8核16G内存电脑,大概编译一个晚上可以完成。

最后生成一个chrome.exe,双击打开,即可浏览网页,播视频等。

                                                                      Chrome.exe的生成

                                                             Chrome.exe浏览网页

关于window下的chrome的下载和编译就到此为止,由于机器环境的差异,可能还会遇到其他问题,这都需要查看log,分析问题逐步就解决的。后续将进一步对chrome的开源版本进行二次开发

0 人点赞