说一下为什么这么晚才发第二篇,上周和这周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 --output-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),一个开发人员的家,来诉说自己的故事。
相关推荐
#### 第2篇 WebCore::Widget浅探 - **WebCore::Widget概述**: - `WebCore::Widget`是WebKit中的一个核心组件,用于处理浏览器窗口的各种交互事件,包括但不限于点击、拖拽、滚动等。 - 这个组件实现了基本的布局...
2. **Web浏览器支持库**:这里提到了“精易Web浏览器支持库”,这是一个用于易语言的第三方库,可能提供了与Chromium内核交互的接口,允许易语言程序调用Chromium的功能,如加载网页、执行JavaScript等。 3. **...
PPAPI是Chromium浏览器用来支持插件的一种接口,它允许第三方开发者编写插件来扩展浏览器功能。这个源码库可能包含了PPAPI的实现细节、构建脚本、测试以及相关的工具。 描述 "chromium.googlesource....
Chromium是一款开源的浏览器项目,它的开发和维护需要用到一系列的工具和流程,其中"depot_tools"是一个重要的辅助工具集合,专门用于简化Chromium的源码获取、构建、测试和提交过程。这篇介绍将深入探讨depot_tools...
**Microsoft Edge:基于开源Chromium的现代浏览器** 微软在2015年推出了全新的Microsoft Edge浏览器,以替代经典的Internet Explorer,旨在提供更快、更安全、更现代化的浏览体验。随着技术的发展,微软在2018年...
在Android操作系统中,LineageOS是一个非常知名的第三方ROM,它为用户提供了一系列的自定义选项和优化,以增强设备性能和用户体验。"安卓浏览器源码,Lineage系统浏览器"指的是LineageOS内置浏览器的源代码,这是一...
在VB(Visual Basic)编程环境中,我们可以创建一个...不过,值得注意的是,自定义浏览器可能受到IE引擎的限制,如果你希望获得更现代的浏览体验,可能需要转向更强大的解决方案,如使用基于Chromium的浏览器框架。
5. **运行Chromium**: 编译完成后,你可以通过`./out/Default/chrome`(Unix系统)或`.\out\Default\chrome.exe`(Windows)来启动编译好的Chromium浏览器。 三、**Chromium开发与调试** 1. **代码修改与提交**: ...
【基于QT开发的浏览器源代码(otter-browser)】是一个开放源码的项目,它使用了流行的跨平台应用程序开发框架Qt来构建一个功能完备的网络浏览器。Qt是一个强大的C++库,提供了丰富的图形用户界面(GUI)工具和系统...
《Chromium OS 技术分析程序全攻略》一书涵盖了Chromium OS的深入技术解析,主要涉及了操作系统的核心原理、JavaScript编程以及与之相关的应用程序开发。这本书通过一系列的实例代码来帮助读者理解Chromium OS的工作...
【标题】"C#写的WEB浏览器(源码)"是一个基于C#编程语言开发的网络浏览器项目,它展示了如何使用.NET Framework或.NET Core平台构建一个基本的网页浏览应用。C#是一种面向对象的、类型安全的编程语言,由微软公司开发...
【C#仿遨游浏览器源码】是一款基于C#编程语言开发的浏览器应用程序,它旨在模仿遨游浏览器(Maxthon)的功能与体验。通过这款源码,开发者可以深入理解浏览器的基本工作原理,学习如何利用C#来实现浏览器的核心组件...
【描述】提到的“资源里面有实例程序”,意味着这个压缩包可能包含了不止一个文件,而是一系列的源代码文件、编译配置文件以及可能的项目文件,这些文件共同构成了一个可运行的浏览器应用程序。"感兴趣的再下源码...
6. **ThirdParty**: 第三方库和依赖,CEFSharp依赖于CEF和其他一些库,这些库的源码或预编译库可能会在这里找到。 CEFSharp的主要特点和知识点包括: - **Chromium渲染引擎**: CEFSharp利用Chromium的Blink渲染...
在Android平台上,开发一款网页浏览器涉及众多技术和组件的整合,这个名为"Android源码——网页浏览器源码.zip"的压缩包很可能包含了一款基于Android系统的网页浏览器的完整源代码。通过对源码的深入分析,我们可以...
CEF是一个开源框架,它允许开发人员在他们的应用程序中嵌入Chromium浏览器引擎,从而实现Web内容的渲染和支持现代网络标准的功能。 描述部分没有提供额外的信息,可能是因为它是空的。通常,描述会包含关于软件包的...
在Android开发领域,深入理解网页浏览器的源码是提升开发者技能的重要步骤。"Android网页浏览器源码"这个项目提供了一个宝贵的资源,让我们有机会探索和学习如何在Android平台上构建一个功能完善的浏览器应用。以下...
【标题】"基于IE内核的多进程浏览器源码"涉及的是互联网浏览器开发技术,特别是以Internet Explorer(简称IE)的浏览引擎为核心,采用多进程架构来提高浏览器的稳定性和安全性。IE内核,也称为Trident渲染引擎,是...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本话题聚焦于利用C#创建一个基于WebKit内核的浏览器,该内核同样被Chrome等流行浏览器所采用,以实现高效、稳定且与...
在C#中集成WebKit,一般会借助于第三方库,如Awesomium、CEFSharp(Chromium Embedded Framework)或EdgeHTML(针对较新的Edge浏览器)。这些库提供了C#接口,可以直接调用WebKit的功能,比如加载URL、获取网页源码...