`
ghost045
  • 浏览: 8386 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

chromium浏览器开发系列第二篇:如何编译最新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 --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),一个开发人员的家,来诉说自己的故事。



 

  • 大小: 12.3 KB
  • 大小: 4.5 KB
  • 大小: 19.4 KB
  • 大小: 4.1 KB
  • 大小: 1.4 KB
  • 大小: 11.4 KB
  • 大小: 47.5 KB
  • 大小: 17.3 KB
  • 大小: 30.7 KB
分享到:
评论

相关推荐

    WebKit和Chromium源码及原理剖析.pdf

    #### 第2篇 WebCore::Widget浅探 - **WebCore::Widget概述**: - `WebCore::Widget`是WebKit中的一个核心组件,用于处理浏览器窗口的各种交互事件,包括但不限于点击、拖拽、滚动等。 - 这个组件实现了基本的布局...

    易语言谷歌69内核最新浏览器源码

    2. **Web浏览器支持库**:这里提到了“精易Web浏览器支持库”,这是一个用于易语言的第三方库,可能提供了与Chromium内核交互的接口,允许易语言程序调用Chromium的功能,如加载网页、执行JavaScript等。 3. **...

    PPAPI google 源码 chromium.googlesource.com

    PPAPI是Chromium浏览器用来支持插件的一种接口,它允许第三方开发者编写插件来扩展浏览器功能。这个源码库可能包含了PPAPI的实现细节、构建脚本、测试以及相关的工具。 描述 "chromium.googlesource....

    chromium 编译工具depot_tools

    Chromium是一款开源的浏览器项目,它的开发和维护需要用到一系列的工具和流程,其中"depot_tools"是一个重要的辅助工具集合,专门用于简化Chromium的源码获取、构建、测试和提交过程。这篇介绍将深入探讨depot_tools...

    cpp-MicrosoftEdge采用开源Chromium开发的MicrosoftEdge

    **Microsoft Edge:基于开源Chromium的现代浏览器** 微软在2015年推出了全新的Microsoft Edge浏览器,以替代经典的Internet Explorer,旨在提供更快、更安全、更现代化的浏览体验。随着技术的发展,微软在2018年...

    安卓浏览器源码,Lineage系统浏览器

    在Android操作系统中,LineageOS是一个非常知名的第三方ROM,它为用户提供了一系列的自定义选项和优化,以增强设备性能和用户体验。"安卓浏览器源码,Lineage系统浏览器"指的是LineageOS内置浏览器的源代码,这是一...

    vb编写浏览器源码

    在VB(Visual Basic)编程环境中,我们可以创建一个...不过,值得注意的是,自定义浏览器可能受到IE引擎的限制,如果你希望获得更现代的浏览体验,可能需要转向更强大的解决方案,如使用基于Chromium的浏览器框架。

    chromium官方文档

    5. **运行Chromium**: 编译完成后,你可以通过`./out/Default/chrome`(Unix系统)或`.\out\Default\chrome.exe`(Windows)来启动编译好的Chromium浏览器。 三、**Chromium开发与调试** 1. **代码修改与提交**: ...

    基于QT开发的浏览器源代码(otter-browser).zip

    【基于QT开发的浏览器源代码(otter-browser)】是一个开放源码的项目,它使用了流行的跨平台应用程序开发框架Qt来构建一个功能完备的网络浏览器。Qt是一个强大的C++库,提供了丰富的图形用户界面(GUI)工具和系统...

    Chromium OS 技术分析程序全攻略(程式代碼)

    《Chromium OS 技术分析程序全攻略》一书涵盖了Chromium OS的深入技术解析,主要涉及了操作系统的核心原理、JavaScript编程以及与之相关的应用程序开发。这本书通过一系列的实例代码来帮助读者理解Chromium OS的工作...

    C#写的WEB浏览器(源码)rar

    【标题】"C#写的WEB浏览器(源码)"是一个基于C#编程语言开发的网络浏览器项目,它展示了如何使用.NET Framework或.NET Core平台构建一个基本的网页浏览应用。C#是一种面向对象的、类型安全的编程语言,由微软公司开发...

    cefsharp源码

    6. **ThirdParty**: 第三方库和依赖,CEFSharp依赖于CEF和其他一些库,这些库的源码或预编译库可能会在这里找到。 CEFSharp的主要特点和知识点包括: - **Chromium渲染引擎**: CEFSharp利用Chromium的Blink渲染...

    C#仿遨游浏览器源码

    【C#仿遨游浏览器源码】是一款基于C#编程语言开发的浏览器应用程序,它旨在模仿遨游浏览器(Maxthon)的功能与体验。通过这款源码,开发者可以深入理解浏览器的基本工作原理,学习如何利用C#来实现浏览器的核心组件...

    bcb 浏览器 源码,参考

    【描述】提到的“资源里面有实例程序”,意味着这个压缩包可能包含了不止一个文件,而是一系列的源代码文件、编译配置文件以及可能的项目文件,这些文件共同构成了一个可运行的浏览器应用程序。"感兴趣的再下源码...

    Android源码——网页浏览器源码.zip

    在Android平台上,开发一款网页浏览器涉及众多技术和组件的整合,这个名为"Android源码——网页浏览器源码.zip"的压缩包很可能包含了一款基于Android系统的网页浏览器的完整源代码。通过对源码的深入分析,我们可以...

    cef_binary_90.5.9+gd330790+chromium-90.0.4430.85_windows32.zip

    CEF是一个开源框架,它允许开发人员在他们的应用程序中嵌入Chromium浏览器引擎,从而实现Web内容的渲染和支持现代网络标准的功能。 描述部分没有提供额外的信息,可能是因为它是空的。通常,描述会包含关于软件包的...

    Android 网页浏览器源码.zip

    在Android开发领域,深入理解网页浏览器的源码是提升开发者技能的重要步骤。"Android网页浏览器源码"这个项目提供了一个宝贵的资源,让我们有机会探索和学习如何在Android平台上构建一个功能完善的浏览器应用。以下...

    基于IE内核的多进程浏览器源码

    【标题】"基于IE内核的多进程浏览器源码"涉及的是互联网浏览器开发技术,特别是以Internet Explorer(简称IE)的浏览引擎为核心,采用多进程架构来提高浏览器的稳定性和安全性。IE内核,也称为Trident渲染引擎,是...

    C# webkit为内核的浏览器打开网页源码__(0521).rar

    在C#中集成WebKit,一般会借助于第三方库,如Awesomium、CEFSharp(Chromium Embedded Framework)或EdgeHTML(针对较新的Edge浏览器)。这些库提供了C#接口,可以直接调用WebKit的功能,比如加载URL、获取网页源码...

    src.next:Kiwi Next的源代码,Kiwi浏览器会自动使用最新的Chromium重新建立基础

    2. **第三方浏览器开发**:基于 Chromium 的浏览器开发涉及对 Chromium 代码的理解和定制,以实现特定的功能和用户体验。 3. **源代码管理和版本控制**:Git 是一种广泛使用的分布式版本控制系统,用于管理软件开发...

Global site tag (gtag.js) - Google Analytics