浏览器开发系列第二篇:如何编译最新chromium源码

说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请大家包涵!

上期回顾:

chromium源码下载:

  1. 找个靠谱的vpn(我试过了,网上说的不用vpn拿代码的都不靠谱);
  2. 获取depot_tools,解压,设置环境变量;
  3. gclient获取python和git,svn,设置环境变量;
  4. fetch–nohooks chromium –nosvn=true 获取源码;
  5. gclientsync --force –nohooks 同步到最新

上边的python和git,也可以通过手动安装,只要环境变量设置好了就可以。

环境配置:

获取代码的最后一步是获取编译环境也就是Visual Studio 2013,上面所有的都成功以后,运行gclient runhooks就会把编译需要的vs2013的文件下载到本地,存储在depot_tools\win_toolchain\vs2013_files路径下,主要文件是编译需要的库文件。

在windows上编译chromium的官网几个说明:

1.你必须把你的windows系统区域设置为英文,否则编译时会发生错误:"The file contains a character that cannot berepresented in the current code page."这个问题在不切换语言的情况下也可以解决。请往下看。

2.因为之前的Visual Studio Express(免费版)存在一些问题,微软也在update4中做了修复,所以现在官网说明用Visual Studio 2013 Update4(Community版或者Professional版)来编译,其他的版本不支持。另外windows系统版本必须是win7 64位以后的版本,32位的已经不支持了。

另外一些说明:

选择编译的版本:

首先切换至src目录下,列出所有版本的标签,下面的命令将标签记录到tags.txt文本中:git tag >>tags.txt 2>&1

使用notepad++打开后如下,只截取了最新tag:

大家可以切换到某个tag进行编译,命令和切换到分支相同,使用如下命令:

git checkout -b chrome_43.0.2355.2_local_branch 43.0.2355.2

创建本地分支chrome_43.0.2355.2_local_branch并切换到远程43.0.2355.2tag上

通过git branch查看是否成功:

同步代码:

gclient sync --nohooks --with_branch_heads --with_tags --outpu

t-json="log.json"–jobs 16

使用--nohooks可以减少每次都检查编译环境等信息。

编译:

1)生成工程,生成可以用vs2013打开的sln,方便之后调试使用。写成批处理文件执行:

set GYP_MSVS_VERSION=2013

set GYP_GENERATORS=msvs-ninja,ninja

set GYP_DEFINES=component=shared_library

set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\;

python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp >>log.txt 2>&1

2)编译工程

set PATH=C:\depot_tools\;

ninja -C src\out\debug chrome>>log.txt 2>&1

以上两步把生成的log放在log.txt中,方便查看。

说明:

1.set GYP_GENERATORS=msvs-ninja,ninja

最新代码生成工程时,会因为msvs-ninja无法打开一些文件,应该影响不大

2.set GYP_DEFINES=branding=Chromium proprietary_codecs=1 buildtype=Dev

优化设置,可以设置

3.set DEPOT_TOOLS_WIN_TOOLCHAIN=0

设置为0是让gclient不要自动去构建环境,使用本机现有环境,可能修改的地方比较多,例如设置set GYP_DEFINES=windows_sdk_path="C:\Program Files(x86)\Windows Kits\8.0",一些json文件的路径等等。默认为0.

由于编译chromium源码对warning要求很严格,所以我列出较重要的warning的解决方法:

1.针对编码问题,和语言问题。

解决方法:最新版本已经将waring4996包含其中,但是没有4819,加上它,会解决很多麻烦。

在src\build\common.gypi文件中增加:

附上官方关于编译参数的说明:

在线查看版本号的地址:

http://omahaproxy.appspot.com/

之后我会陆续推出关于chromium的一些列文章,请大家继续关注。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何在CDH中使用HBase快照

前面Fayson讲过HDFS的快照,参考如何在CDH集群使用HDFS快照,那么HBase的快照呢?HBase快照功能丰富,有很多特征,并且创建时不需要关闭集群。...

3856
来自专栏Python爬虫与数据挖掘

如何在虚拟机上安装centos7.4系统—靠谱的centos7.4系统安装教程

前几天给大家分享了在虚拟机上安装Centos6.7系统的教程,感兴趣的童鞋们可以点击进去查看。今天小编给大家分享在虚拟机上安装Centos7.4...

912
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(二):开发环境配置

努力与运动兼备~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

1715
来自专栏Hadoop实操

如何集成OpenLDAP+Sentry.docx

前面Fayson讲了如何安装OpenLDAP及CDH集群集成OpenLDAP等一系列文章,本篇文章主要介绍集成OpenLDAP后的CDH集群在启用Sentry服...

4064
来自专栏淡定的博客

Git 速查表(速查大全)

773
来自专栏BeJavaGod

[群友分享] 第一次安装liunx系统排坑总结

本文来自群友“易水难求”总结,适合新手排坑 第一次安装设置虚拟机爬坑总结 第一坑:使用VMware Workstation 11版本的设备安装 CentOS-...

3687
来自专栏小狼的世界

WAMP环境配置

经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。

1224
来自专栏Dawnzhang的开发者手册

VMWare14 安装Mac OS系统(图解)

②. 网上的镜像文件有的可能不是 .cdr 格式,比如我之前安装的是 .pkg 格式报的蓝屏启动界面,此处以 .cdr 文件为操作指导。

1092
来自专栏Hadoop实操

如何在Redhat中安装R的包及搭建R的私有源

继上一章如何在Redhat中配置R环境后,我们知道对于多数企业来说是没有外网环境的,在离线环境下如何安装R的包,能否搭建R的私有源对R的包进行管理。

6007
来自专栏编程

3分钟带你学会git向github推送!

如果你是一个程序员,你还不知道git和github的话,就说明你low了;那也没关系,赶紧戳链接去下载就行~~ git:分布式的版本管理工具,具体的我就不在这里...

1867

扫码关注云+社区