windows上面编译chromium源码
在chromium的编译指导上面是有点复杂,我们先来一个极简的编译成功的教程,后面再详细去了解具体的优化和其它配置。
前提准备
- visual studio 2022
- git bash
- 网络(需要下载非常多的代码),最好是有全局加速网络
安装depot_tools
这个是google自己编写的下载和编译chromium的基础框架工具,这样简化了非常多的操作,不需要我们去关心里面的细节,只需要使用这个工具来下载,更新和编译chromium.
下载
下载地址如下,复制到浏览器双击下载。
https://storage.googleapis.com/chrome-infra/depot_tools.zip
添加到系统PATH
打开系统的环境变量设置,可以直接search "edit environ" ,选择然后点击PATH,如果有admin权限,可以将其放到系统的环境变量里面,如果没有就放到用户的环境变量的PATH里面。
有一个问题需要注意,一定要将depot_tools放到python的路径前面,因为depot_tools里面也自己的python,不能有其它python版本在depot_tools前面,这样会导致depot_tools使用其它版本的python,导致出现一些兼容性问题。如果你没有admin权限,在system env的PATH路径里面又有其它python路径,这样就会有问题,要不去获取admin权限,要不换台自己的电脑的吧。
下载源码
新建chromium目录来放置源码, 需要大概100G的空间,如果没有,最后会因为空间不足而失败。还有就是网络稳定也非常重要,不过网络出问题了也没事,这个是可以断点续传的,失败了会不需要重新再全部下载,只会下载没有完成的部分,所以不用很担心网络失败的
先创建一个目录来保存代码,建议是直接放在用户目录下面,这样总体路径不会太长,chromium有个rust测试的路径非常长,放到很深的目录下很容易超过256字节路径长度限制。
创建源码目录
mkdir chromium && cd chromium
在源码目录执行下面的命令下载源码, 这个取决于你的网络速度,一般要几个小时,所以可以放到晚上拉取, 还有如果失败要重试,使用gclient sync
命令
fetch chromium
生成gn配置
通过GN工具生成.ninja配置文件,通过ninja工具编译
这是第一次编译chromium, 我们现在都用默认的配置,不用改任何东西。只需要在上面的chromium的目录下面拉取完代码后,子目录有一个src的目录,跳转到这个目录下面,执行gn命令
cd src
gn gen out/Default
gn gen最后的结果如下:
Generating Visual Studio projects took 16526ms
Done. Made 24193 targets from 3908 files in 29418ms
编译
有5万多个文件需要编译,好的机器也需要3个小时以上,所以也可以放到晚上编译。我的机器是7950x + 64G,在1.5小时可以编译完成。这个编译过程在会有一个utf-8的编译错误,导致一直失败。解决方法如下,启动windows的utf-8的配置
编译命令如下:
autoninja -C out/Default chrome
编译完成大概花了1小时45分钟
运行
./out/Default/chrome.exe
运行结果如下
参考
1.https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md
2.https://beyondkmp.com/2023/10/30/compile-and-debug-chromium-windows/
test