一,需要:
1,vs2022(大于2017都行),
需要C++包,需要Clang,需要win11 sdk version 10.0.22621.0,需要MFC
安装vs时候,看到上面需要的字样就勾选上就行。
2,win10
3,需要150GB磁盘空间
二,官方资源
1,主要说明网址:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
2,参考了一下的文档:https://www.cnblogs.com/jiangu66/p/3177741.html
三,开始步骤
1,安装好上面说的vs2022以及包
2,下载depot_tools:
https://storage.googleapis.com/chrome-infra/depot_tools.zip
depot_tools是谷歌弄的编译工具全程都用这个工具进行源码编译
3,解压
工具到随便没有中文,空格,其他字符的位置(如D:\tmp\buildChrome\ready\depot_tools)
4,设置系统环境变量
在系统变量的path里面添加D:\tmp\buildChrome\ready\depot_tools,并且置顶。
在系统变量里面新建,名字是DEPOT_TOOLS_WIN_TOOLCHAIN,值是0
5,安装编译工具
在powershell执行如下命令,位置在D:\tmp\buildChrome\ready
$ gclient
程序会自动下载所有需要的东西,这个过程可能需要一些网络工具。
如果不行,可以给powershell设置代理
$proxy=’http://127.0.0.1:7890′
$ENV:HTTP_PROXY=$proxy
$ENV:HTTPS_PROXY=$proxy
注意,代理仅一次有用,关闭powershell再打开,就没了,需要重新设置。
出现下图,表示成功:
6,检查python
depot_tools里面找工具检查python和python3
python.bat
python3.bat
7,下载浏览器主代码
新开一个地方,如C:\src\chromium
$ fetch chromium
如果执行失败,下次再下载时候,要执行下面的语句(不会断点续传,会重新下)
$ gclient sync
一共下载了 39.83 GB文件,时间1个多小时
PS C:\src\chromium> gclient sync
Updating depot_tools...
1>________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src.git C:\src\chromium\_gclient_src_l22w2eg7' in 'C:\src\chromium'
1>Cloning into 'C:\src\chromium\_gclient_src_l22w2eg7'...
1>remote: Finding sources: 100% (8289/8289) objects: 1
1>remote: Total 20694302 (delta 15200668), reused 20692363 (delta 15200668)
1>Receiving objects: 100% (20694302/20694302), 39.83 GiB | 12.51 MiB/s, done.
1>Resolving deltas: 100% (15200668/15200668), done.
1>Checking objects: 100% (67108864/67108864), done.
[1:07:43] Still working on:
[1:07:43] src
注意,Still working on:表示别担心,程序还在工作,一直等待完成。
最后如下表示下载完成
blink/renderer/core/css/perftest_data' took 33.89 secs
Running hooks: 100% (145/145), done.
8,编译代码
编译时间:2小时整
电脑配置i9-12900K,24核处理器
进入C:\src\chromium\src
执行
gn gen out\Zouzhe --args="is_component_build = true is_debug = true symbol_level = 1"
开始编译(autoninja会自动使用多核心处理器,不用担心make -j几)
$ set NINJA_SUMMARIZE_BUILD=1
$ autoninja -C out\Zouzhe chrome
编译后的out文件大小
编译后的总代码大小:
9,运行
在C:\src\chromium\src\out\Zouzhe下面,找到chrome.exe文件,双击,成功
提示缺少密钥,是因为我们没有填写谷歌api密钥
记录时间:2023年6月29日,走着的博客
本文地址: 从零编译Chromium浏览器(Chrome)源代码