windows下载,编译,运行chromium源码遇到的问题
主要过程参考官方文档:https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
这个人的很详细!https://www.yangdx.com/2022/07/215.html
chromium编译步骤:
1.下载depot_tools
下载地址:https://storage.googleapis.com/chrome-infra/depot_tools.zip
2.将depot_tools.zip解压后,将depot_tools目录路径添加到系统的PATH环境变量,添加环境变量DEPOT_TOOLS_WIN_TOOLCHAIN = 0;
注:depot_tools.zip要直接解压到指定目录,不能通过解压后复制到指定路径的方式,复制会导致内部文件丢失!!!
官方文档描述:Warning: DO NOT use drag-n-drop or copy-n-paste extract from Explorer, this will not extract the hidden “.git” folder which is necessary for depot_tools to autoupdate itself. You can use “Extract all…” from the context menu though.
3.创建源码目录
mkdir chromium //创建目录
cd chromium
4.配置代理 *******(重要步骤)*********
(1)为CMD设置HTTP/HTTPS代理
打开一个具有管理员权限的CMD
C:>netsh
netsh>winhttp
netsh winhttp>set proxy 127.0.0.1:1080
netsh winhttp>bye
C:>set http_proxy=http://127.0.0.1:1080
C:>set https_proxy=http://127.0.0.1:1080
注:此步骤若关闭当前cmd,重新打开新的cmd需要重新配置代理
(2)为git设置http/https代理
C:>git config –-global http.proxy %http_proxy%
C:>git config –-global https.proxy %https_proxy%
(3)设置NO_AUTH_BOTO_CONFIG
<1>随便找个地方创建一个文本文件,比如 C:\boto.cfg
文本内容:
[Boto]
proxy=127.0.0.1
proxy_port=1080
<2>设置环境变量
C:>set NO_AUTH_BOTO_CONFIG=C:\boto.cfg
备注:
代码同步成功后,记得回复系统设置
(1)恢复netsh winhttp设置为直连
C:>netsh
netsh>winhttp
netsh winhttp>reset proxy
(2)清除git代理
git config --global --unset http.proxy
git config --global --unset https.proxy
5.更新depot_tools
C:>gclient
6.如果之前从未使用过git,那么需要进行一下全球的git配置
C:>git config -–global user.name "yourname" #yourname改为你希望的用户名
C:>git config –-global user.email "youremailaddress@gmail.com" #输入你自己的邮箱
7.下载chromium代码
fetch chromium //下载代码
fetch --no-history chromium //只下载最新版本
git clone --depth 100 -b 103.0.5060.66 https://chromium.googlesource.com/chromium/src.git src 下载指定tag的代码
8.下载完成后,再同步更新一次代码
git pull
gclient sync
9.如果编译指定版本,需要如下操作
(1)检查分支
git fetch --tags
(2)根据指定分支创建分支,并切换到该分支
git checkout -b Browser_61.0.3163.100 tags/61.0.3163.100 //Browser_61.0.3163.100为分支名;61.0.3163.100为对应版本
(3)同步代码
gclient sync
10.最后一步,编译chromium源码
(1)进入源码目录
cd src
(2)生成编译配置文件
gn gen out/Default --ide=vs --args="target_cpu=\"x86\"" //out/Default 中 Default并非固定,可以随意取名
(3)编译代码
ninja -C out/Default chrome
这边提下遇到的问题:
首先你需要保证的是!
1.下载chromium源码的磁盘....100G保证下
2.内存的话,最好最好是16G
下载:
下载depot_tools,VS都按照文档来,包括VS下载也按照文档来用命令行的方式,这边要注意的是
去控制面板更改SDK 要选中 Debugging Tools for windows这个~
1. 打开cmd,在你想放置源码的位置,创建chromium文件夹并进入,mkdir chromium && cd chromium;
2. fetch chromium;
下载不下来的话,找同事要把......
这边遇到问题,
[0:36:42] Still working on:
[0:36:42] src/third_party/angle
没事,要是断了,你就一直执行gclient sync --force
最后!!!!
编译:
看文档,这边提到遇到的问题
1. 首先使用默认的编译方式吧,使用gn gen out/Default,会在src目录下创建out/Default目录,并配置些编译需要的文件;
这个遇到了问题
1). No supported Visual Studio can be found. Supported versions are: 16.0 (2019), 15.0 (2017)
我是直接运行
E:\chromium>gclient sync --force fatal: unable to access 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/': Failed to connect to chromium.googlesource.com port 443: Timed out Syncing projects: 100% (117/117), done. Hook 'vpython.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' took 34.50 secs Running hooks: 100% (109/109), done. E:\chromium>python src/build/vs_toolchain.py get_toolchain_dir vs_path = "E:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community" sdk_path = "E:\\Windows Kits\\10" vs_version = "2019" wdk_dir = "" runtime_dirs = "C:\\Windows\\System32;C:\\Windows\\SysWOW64;Arm64Unused"
2).找不到SDK
记得添加到环境变量path中
3).就是SDK需要下载安装Debugging Tools for windows
2. 使用ninja -C outDefault chrome命令行编译chrome,此时需要等待漫长的时间;
这边遇到了问题,一个就是磁盘不够,一个就是内存分配不足,也就是为什么要建议磁盘100G,内存16G的原因
运行:
在 E:\chromium\src下
gn gen --ide=vs out\Default devenv out\Default\all.sln
这边继续遇到问题:
path配置环境:
E:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat E:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
按照每个人的来........
然后重启cmd再次执行下....
再次遇到问题
对COM组件的调用返回了错误HRESULT E_FAIL
找到并且运行Developer Command Prompt for VS 2019 管理员身份运行
命令行打开cmd
执行这个gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll
这里记住命令要到指定目录下才能执行
一般最后的执行命令路径在 …\Common7\IDE\PublicAssemblies
如果遇到gacutil不是内部或外部命令
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools
看看有没有gacutil.exe文件,有的话,把上面路径配置在path下,设置一下系统的环境。
没有的话就要去安装
随便选一个就好
在把路径装进去
关掉vs,再来一次
devenv out\Default\all.sln
再次尝试了下,这是个悲伤的故事:用gclient的时候,出现了此时不应该出现)
原因是因为depot_tools这边!!!的路径有了()
比如C:\Program Files (x86) 这个就不行
然后改了之后再来!!!
显示glient不是内部或外部命令,也不是可运行的程序或批处理文件。说明 depot_tools 的环境变量未生效,请查看配置是否正确;重启下就ok
然后!
输入gclient --version 没有就下载了,有就出现版本了
显示“gclient.py 0.7”,说明 depot_tools 的环境变量已经生效;
环境变量的配置有,我是系统变量用户变量都配置了。
然后皆大欢喜: