记录chromium 开发搭建过程,系统、软件环境不同,所遇问题可能不同,但主体关键相似,仅供参考。
VS 安装
安装vs2019
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210215112536962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
the version 10.0.19041 or higher Windows 10 SDK installed
注意点:
确保windows sdk 安装成功我vs完成安装后以为成功,后面查问题才发现sdk有异常,但开始没注意,在编编译出现问题类似这样:
Exception: dbghelp.dll not found in “C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbghelp.dll”
还有就是关于vs_toolchain.py的报错。
检查时可以再次打开vs installer,如果有出错,会提示。然后选择“修改”,增加一些其它sdk版本的选择,再继续安装。
Debugging Tools For Windows
控制面板 → 程序 → 程序和功能 → 选择“Windows Software Development Kit” → 更改 → 更改 → 勾选 “Debugging Tools For Windows” → 更改
chromium 安装
官方:
https://github.com/chromium/chromium/blob/master/docs/get_the_code.md
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
本地化安装
另一种网友推荐
https://blog.csdn.net/business122/article/details/80512218
先下源码,再放在本地安装
https://chromium.googlesource.com/chromium/src.git/
先确认最新稳定版本,再复制链接下载。
后面证明此路不通。
在线安装
主要参考
https://blog.csdn.net/tianyun3350/article/details/108361791
代理
香港代理轻量级应用服务器,安装ss。
PC开启ss Client。
git config --global https.proxy http://127.0.0.1:5003
git config --global http.proxy http://127.0.0.1:5003
set http_proxy=http://127.0.0.1:5003
set https_proxy=http://127.0.0.1:5003
技巧
由于要长时间下载,为了避免电脑锁屏等系统原因导致中断,要使得当前系统操作处于活动状态,尝试了模拟按键的办法。(我自己使用中,多次长时间放着让其自己下载,结果每过一段时间后就下不动,起初以为带宽不好,后面怀疑到这个情况下,试了此法果然有效!)
参考:https://blog.csdn.net/a53hupper/article/details/106671045
filename.ps1 文件
$shell = New-Object -com "Wscript.Shell"
while($True){
Start-Sleep -Seconds 60
$shell.sendkeys(" ")
}
为绕过系统安全检查的执行策略,通过命令行cmd进入ps1文件的存储目录,执行以下命令:
powershell.exe -ExecutionPolicy Bypass -File filename.ps1
安装git和python
本人是先下载了这两个。
网上搜索官方安装步骤即可。
下载depopt_tools
打开cmd,开启代理
环境变量
DEPOT_TOOLS_WIN_TOOLCHAIN |
GYP_MSVS_VERSION |
GYP_MSVS_OVERRIDE_PATH |
vs2019_install |
DEPOT_TOOLS_UPDATE |
0 |
2019 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community |
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community |
0 |
看参考其它人的链接,有设置WINDOWSSDKDIR环境变量,查了是因为安装时与默认的路径不同,如果是默认安装在系统的Program Files 下是不用的。
下载 chromium
首次
fetch --no-history chromium
如果有断开,后面用这个。
gclient sync
编译
问题1
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214101145414.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
参考:
https://groups.google.com/a/chromium.org/forum/embed/#!topic/chromium-dev/6xj25ebdXOY
看似是文件拷贝的问题,于是先将Test.js和devtools_compatibility.js从原目录手动拷贝过来。原目录 :
D:\chromium\chromium\src\third_party\devtools-frontend\src\front_end
目标目录:
D:\chromium\chromium\src\out\Default\gen\third_party\devtools-frontend\src\front_end
继续执行时还出错
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214113012256.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
位置不同
调试发现有调用 node.exe
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214151232938.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
然而手动调用 node.exe是可以的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214151346623.png)
检查目录发现chromium自带的node目录下并没有可执行的node.exe文件(而我已经以前是有安装nodejs的,如果有人也遇到和我一样的问题,也可以参考我下面的修改办法)。所以改代码,让cmd直接调用node.exe(下面有代码截图)
但后面又有别的错误
通过单独执行发现,可能还是node的位置问题,尽管我创建了一个快捷方式到chromium的目录下。
通过分析出错的代码位置src\third_party\devtools-frontend\src\third_party\typescript\ts_library.py,发现一个变量指向node.exe,而此变量是由下在方式获取的,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214221508543.png)
接着通过everything找devtools_paths
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214221624906.png)
代码如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214221654848.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
原来还是调用 了src\third_party\node\node.py中的接口,之前改了调用时,看来还是改函数接口实现吧。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214221716589.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
以下截图:1为问题,2为调试时参数输出,3为修改后的结果。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210214221335773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXdheW5l,size_16,color_FFFFFF,t_70)
通过上图第3个框测试可以。所以接着编译。
参考
先收集参考!
资讯
https://www.solidot.org/search?tid=155
开发
打造专属的Chromium for Android
https://www.jianshu.com/p/08f0701e86de
启航篇
https://blog.csdn.net/yangdeli888/article/details/51811169
Chromium网页加载过程简要介绍和学习计划
https://blog.csdn.net/Luoshengyang/article/details/50414848