阅读目录
编译铬
系统是windows,国外在windows上编译chromium的资料比较少。 本文只能作为参考,记录一下我遇到的一些问题,因为chromium团队也会改代码,或者编译过程;
如果您使用 Linux 或 Mac,请不要阅读本文。 美国编译的文档都是linux和mac的,因为还有很多差距;
15个编译过程:
1:chrome源码;
2:系统要求:win7以后的版本,处理器需要x86或x64;
3:Windows下至少需要8G可用显存,硬盘最好是固态的。 Chromium整个项目需要10G硬盘空间;
4:vs2015第二版或者更新版本,安装时选择自定义安装(Visual C++、MFC下选择3个选项);
还有window10的SDK,总之看到就选SDK,不然就得重装VC2015:
5:下载depot_tools:;
6:下载后解压,设置depot_tools为环境变量,环境变量DEPOT_TOOLS_WIN_TOOLCHAIN=0;
7:创建chrome_build目录,把chrome的源码放在这里(用git下载很慢); 如果是mac系统,直接参考官方文章:
运行下面的代码
mkdir chromium //创建目录 cd chromium fetch --no-history chromium //同步代码
8:执行gclientsync。 如果没有问题的话,你会手动下载python和git。 这时候请注意,因为GW的原因,我们不得不让git的合约也经过代理。
让git走代理的前提是有代理服务器或者socks代理。 我使用的是socks5代理,代理端口是本地1080:
运行下面的代码
git config --global https.proxy socks5://localhost:1080 git config --global core.proxy socks5://localhost:1080 git config --global http.proxy socks5://localhost:1080 git config --global http.sslVerify false
如果我们想取消git的代理,我们执行以下命令:
运行下面的代码
git config --system (或 --global 或 --local) --unset http.proxy
git config --system (或 --global 或 --local) --unset httpx.proxy
git config --system (或 --global 或 --local) --unset core.proxy
9:上面这一步是给git设置代理,代理是本地的sock5,对于python还没有设置代理。 如果不给python设置代理,会导致python下载文件失败。 我们通过更改 depot_tools 的源代码来让 python 消失
更改几个文件。 该路径是相对于depot_tools目录的。 目前只需要改3个python脚本文件,以后就不会知道了。 必须根据cmd给出的错误源自行更改:
depot_toolsgsutil.py
depot_toolsexternal_bingsutilgsutil_4.15gsutilthird_partyhttplib2python2httplib2__init__.py
depot_toolsexternal_bingsutilgsutil_4.13gsutilthird_partyhttplib2python2httplib2__init__.py
相关文件导入后,在主程序代码前面添加:
运行下面的代码
import win_inet_pton
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
socket.socket = socks.socksocket
由于我本地使用的是shadowsocks,所以我将代理设置为本地1080端口
如果下载过程卡住,可以使用任务管理器判断后台是否有下载。 如果确实卡住,按ctrl+C强制取消chromium源码base编译,然后重新执行gclientsync重新同步;
10:在src目录下执行,python会链接下载第三方依赖模块:
运行下面的代码
gclient runhooks
12:生成BUILD.gn文件:
运行下面的代码
gn gen outDefault
13:至此,代码下载完成,然后执行:
运行下面的代码
ninja -C out/Default chrome
如果机器不好的话,我们可以更改编译参数:ninja-j配置同时编译任务的数量,默认是6,如果机器比较卡的话,需要更改,否则编译过程会走错误的;
14:两万多个文件,让他逐步编译:
15:经过几个小时的编译,结果终于出来了:
参考:
python去socks5代理参考:
执行gclient时下载远程rar包困难的解决办法:
这哥们成功编译了chromium:
howtousegitthroughaproxy:老版本的git需要自动将socks5代理转换为git代理,新版本不需要,所以只要有新版本的git就可以了;
Chromium源代码download_from_google_storage很难下载文件:
为 python 安装 pypi 并让 python 通过代理:#windows-simplified
官方文档:
只能说chromium的源码太坑人了。 虽然有fqchromium源码base编译,但依然是各种悲剧。 嘿:
注意:
确保为 git 和 python 设置代理。 如果通过修改host的形式来实现FQ,就会出现验证问题,导致python和git同步文件失败。
不要使用别人下载的项目,因为chromium项目很大,编译会涉及到操作系统、环境、编译工具、chromium版本、FQ、文件下载失败、验证……各种问题,你可以FQ下降
我建议大家不要看网上的chrome编译教程,因为chrome的代码还在更新中,现在又出现了新的编译形式,可以让别人编译。 你一定不能编译它。 最好的办法就是参考官方文档。 你必须阅读官方文档。 :