vs2013-chromium完整源码任意节点编译

本文介绍Chromium在Windows系统的编译方法。首先说明了编译所需环境,如64位Intel机器、特定版本的Visual Studio等。接着阐述depot_tools安装、代码获取步骤,最后介绍编译方式,包括不使用和使用VS的情况,还总结了常见编译错误及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#推荐阅读
chromium官网win编译:https://www.chromium.org/developers/how-tos/get-the-code
网上例子1:https://www.cnblogs.com/diligenceday/p/5747879.html
网上例子2:https://juejin.im/post/5a45ab5651882525ab7c17ef

#环境:
*64位Intel机器,至少8GB RAM。强烈推荐超过16GB。
*NTFS格式的硬盘驱动器上至少有100GB的可用磁盘空间。FAT32不起作用,因为一些Git打包文件大于4GB。
*Visual Studio,Visual Studio 2017(> = 15.7.2)或2019(> = 16.0.0)。(我用的2013官网推荐2017,一样没问题)
*Windows 7或更高版本
*Windows 10 SDK ( >=10.0.17763,必须按照官网给的sdk版本我建议 )
*SDK调试工具,如果通过Visual Studio安装程序安装了Windows 10 SDK,则可以通过以下方式安装它们:
控制面板→程序→程序和功能→选择“Windows软件开发工具包”→更改→更改→检查“Windows调试工具” “→改变
*安装git
*选择有至少100G空间的硬盘,例如我的是F盘,新建脚本F:>set_para.bat,内容以下:
set DEPOT_TOOLS_WIN_TOOLCHAIN=0 //告诉depot_tools使用本地安装的Visual Studio版本(默认情况下,depot_tools将尝试使用google内部版本)
set GYP_MSVS_VERSION=2013 //VS版本
set GYP_GENERATORS=msvs-ninja,ninja //ninja和vs编译方式
set GYP_DEFINES=component=shared_library target_arch=x64 disable_nacl=1 windows_sdk_path=“C:\Program Files (x86)\Windows Kits\10” //共享库,目标是x64体系,debug模式,sdk路径

#安装 depot_tools
安装命令:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git,例如在cmd下:
F:>git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git //只要depot_tools文件夹又在增大而没有 报错就等
下载完成后,打开系统环境变量设置:将depot_tools路径添加到系统path变量的《最前面》,我设置如下:
**F:\depot_tools;**C:\Program Files (x86)\Common Files\Oracle\Java\javapath;%SystemRoot%\system32;…
运行脚本set_para.bat
运行gclient,例如我:
F:>gclient //只要depot_tools文件夹又在增大而没有报错就等

#代码获取
首次git安装用户,配置,否则跳过:
$ git config --global user.name “My Name”
$ git config --global user.email "my-name@chromium.org"
$ git config --global core.autocrlf false
$ git config --global core.filemode false
$ git config --global branch.autosetuprebase always

执行cmd命令:
F:>mkdir chromium && cd chromium
现在执行fetch chromium,完整记录拉取下来(fetch --no-history chromium自己拿捏):
F:\chromium>fetch chromium //只要没报错,并chromium文件夹有增大,就继续等
在F:\chromium下看到src文件夹和.gclient就可以停止下载,下完也行

git fetch origin --tags //同步所有的tags到本地仓库
git reset --hard 43.0.2357.130 //切换到这个43.0.2357.130(可以自己替换想要的分支)稳定分支,注意,这个操作只是切换了chrome的稳定版本的指针,其他依赖的仓库如v8,blink等并没有切换。
gclient sync --force --nohooks --with_branch_heads  //同步依赖的其他git仓库的代码,这样操作后,chrome仓库代码才和他依赖的代码搭配是正确的。官方说的是git checkout -b your_branch 43.0.2357.124;gclient sync --nohooks --with_branch_head.这样是没有用的,gclient在查找chrome仓库的git指针任然指向master的,这样同步就是最新的master代码了,相信不少同仁都遇到了,好些编译指定版本代码的就卡在这里了。
gclient runhooks //这条命令将下载依赖的二进制包,产生ninja和vc工程

#编译
cmd执行cd src //这时应该在F:\chromium\src里
##不使用vs
$ gn gen out/Default
$ ninja -C out/Default chrome //没编译错误的话等很久就行

##使用vs
$ gn gen --ide=vs out\Default(gn gen --ide=vs2017 out\Default)//在此之前最好gn args out\default进行配置下https://www.chromium.org/developers/gn-build-configuration
$ devenv out\Default\all.sln
在out\default目录下看到all.sln的工程表示成功


编译错误总结


1.文件编码格式
通过notepad++转码为ANSI,有一些需要转为UTF-8 BOM,保存,再编译通过

2.找不到UIViewSettingsInterop.h
將out/Debug_x64/environment.x64 里的INCLUDE=C:\Program Files (x86)\Windows Kits\10/Include/10.0.10240.0/替换为
INCLUDE=C:\Program Files (x86)\Windows Kits\10/Include/10.0.17763.0/

原因我的SDK10里有三个小版本,但只有10.0.17763.0有满足文件的,索性由10.0.10240.0全换成10.0.17763.0
environment.x64这个是编译出x64版本的,在拉源码的时候gclient sync会自动生成,这里涉及到一些配置(不清楚生成environment.x64有哪些因素影响)
还有一种是gn gen out\Default命令生成自己的输出目录,gn args out/Default会生成args.gn编译配置文件,具体设置可参考:
https://link.juejin.im/?target=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Ftools%2Fgn%2Fdocs%2Fquick_start.md
ninja编译的时候会找environment.x64的配置信息

3.还有一个是cssstylerule继承cssrule,cssstylerule作为导出类,cssrule不是,报错
将cssrule改为导出类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值