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 的环境变量已经生效;

 

环境变量的配置有,我是系统变量用户变量都配置了。

然后皆大欢喜:

 

 

posted @ 2021-04-26 11:01  冰糖葫芦很乖  阅读(7184)  评论(2编辑  收藏  举报