文档章节

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

lonely1986
 lonely1986
发布于 2015/04/08 22:00
字数 1035
阅读 27
收藏 0

说一下为什么这么晚才发第二篇,上周和这周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),一个开发人员的家,来诉说自己的故事。

本文转载自:

共有 人打赏支持
lonely1986
粉丝 110
博文 34
码字总数 8686
作品 0
海淀
chromium浏览器开发系列第二篇:如何编译最新chromium源码

附上上一篇文章地址,方便大家查看: 下载源码 说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请...

ghost045
2015/04/04
0
11
浏览器开发系列第二篇:如何编译最新chromium源码

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

东辉在线
2015/04/04
0
0
chromium浏览器开发系列第三篇:chromium源码目录说明

附上上两篇文章地址,方便大家查看: 下载源码 编译源码 上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,...

ghost045
2015/04/09
0
2
chromium浏览器开发系列第三篇:chromium源码目录结构

上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流。 另外,官网的不一定准确,他们其实也很懒,所...

yistn
2015/04/09
0
0
OSChina 技术周刊第二十八期 —— 用 React 编写移动应用

每周技术抢先看,总有你想要的! 移动开发 【软件】RichEditor for Android 【软件】用 React 编写移动应用 React Native 【软件】iOS 图表控件 ios-charts 【博客】iOS 越狱开发——如何将应...

OSC编辑部
2015/04/05
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

2018资本方向:重新发现社交

2018年可谓是资本寒冬,投资人方面认为今年投资主题较少,大量机构继续项目退出来筹措新一期基金,创业公司上市募资,好让投资人收回资金离场,在如此惨淡的背景下,社交领域的投资却有回暖趋...

ThinkSNS账号
19分钟前
1
0
day118-20181016-英语流利阅读-待学习

耶鲁毕业又如何?美国最高法院大法官被控性侵 雪梨 2018-10-16 1.今日导读 美国最高法院大法官布雷特·卡瓦诺(Brett Kavanaugh)被指涉及 1980 年代多件性侵案,包括克里斯汀·布莱希·福特...

飞鱼说编程
20分钟前
2
0
Android studio取消自动折叠代码

在这里面设置就行

lanyu96
21分钟前
1
0
Magento2后台忘记密码

Magento2后台忘记密码处理方式 第一种(Magento CLI 命令行创建新用户): php bin/magento admin:user:create --admin-user="newName" --admin-password="New-passwd" --admin-email="newN......

alt_tab_jj
22分钟前
1
0
Vue 引入Jquery jQueryRotate.2.2 制作转盘抽奖

原先用jquery做的,现在整合webpack+vue 其实只需要webpack就行了,只是为了方便打包。 1、关闭eslint 检测,如果开启,插件里面全是报错,麻烦的很。 webpack.base.conf.js const createLin...

大灰狼wow
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部