`
cppmule
  • 浏览: 447419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

编译 Google Chrome

 
阅读更多

google chrome出来已经很久了,虽然自己没有装过,但是又一次开会在同事电脑上用了一下感觉的确很速度,而且很轻巧。昨天查资料时看到一篇文章,于是便开始捣鼓编译起来了。

  整个过程其实很简单。

一:配置开发环境:
   1. 我的编译环境是vs2008 + Windows SDK 2008
   2. 安装Windows SDK 2008,安装完后,执行:开始|所有程序|microsoft windows SDK v6.1|Visual Studio Registration|Windows SDK Configuration tool 将最新的SDK与VS2008关联起来。

   
   注:安装后,SDK Versions默认为v6.1,如果想要切换为v6.0A, vs2008编译的时候还是include v6.1。
   找啊找啊找,原来Windows SDK Configuration tool 工具有一个Bug,具体请看:
http://blogs.msdn.com/windowssdk/archive/2008/06/30/winsdk-bug-notification-sdk-config-tool-appears-to-work-but-fails.aspx

       HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows\@CurrentInstallFolder = C:\Program Files\Microsoft SDKs\Windows\v6.0A\ to build with the Windows SDK content included in VS2008;

 or

         HKEY_CURRENT_USER\Software\Microsoft\Microsoft SDKs\Windows\@CurrentInstallFolder = C:\Program Files\Microsoft SDKs\Windows\v6.1\ to build with the Windows SDK content included in the Windows SDK for Server 2008. ”

二:开发环境准备完毕,接下来下载Chrome的源代码:
   1. 下载depot_tools_win.zip,下完解压到一个目录,假设解压后的目录是:C:\depot_tools。
   2. 把depot_tools的路径加入PATH环境变量:我的电脑|属性|高级|环境变量。
   3. 创建一个存放代码的文件夹,假设是:c:\trunk;运行cmd并将当前路径定位到该文件夹: cd c:\trunk。
   4. 在cmd里执行:gclient config http://src.chromium.org/svn/trunk/src
   5. 执行完后,再执行:gclient sync,此时就开始检出Chrome的代码,需要很长的时间。

经过很长的时间(我下载了3个小时左右),代码终于取下来了,现在开始构建:
   1. 打开c:\trunk\src\chrome\chrome.sln。
   2. 会看到app目录下有一个chrome_exe工程,构建它就行了。

耐心地等待构建(我构建了1个半小时,看来我的本本性能还是不错的),幸运的话,目标文件会生成在:c:\trunk\src\chrome\debug
详细编译访问见:http://sites.google.com/a/chromium.org/dev/developers/how-tos/build-instructions-windows

三:关于chrome的内核引擎
    google chrome用的是WebKit内核引擎,看来firefox日子要开始不好过了。
    WebKit Open Source Project 内核引擎的前世今生

  WebKit 的前身是 KDE 小组的 KHTML。Apple将 KHTML 发扬光大,推出了装备 KHTML 改进型的 WebKit 引擎的浏览器 Safari,获得了非常好的反响。


  WebKit 引擎比 Gecko 引擎更受程序员欢迎的原因,除了其引擎的高效稳定,兼容性好外,其源码结构清晰,易于维护,是一个重要的原因。而 Gecko 的可维护性就差多了。我在 2008年6月时候,曾编译 Gecko 引擎,准备做一个基于 Gecko 的 Embed 应用程序,但文档缺乏、结构欠清晰,折腾了一星期之后,最终不得不承认自己水平有限,放弃了事。

  现在浏览器的内核引擎,基本上是三分天下:

  • Trident: IE 以Trident 作为内核引擎。
  • Gecko: Firefox 是基于 Gecko 开发。
  • WebKit: Safari, Google Chrome 基于 Webkit 开发。

 

  WebKit 内核在手机上的应用十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

  下面是 WebKit 首页关于 WebKit 的介绍:http://www.xiaohui.com/dev/server/20080903-webkit-opensource-project.htm

四:chrome涉及开源项目
  Google Chrome是一个优秀的开源的浏览器,其开发过程大量地使用了网上现在成熟稳定的开源代码,目前Chrome所涉及25个开源代码:

1、Google Breakpad
    /src/breakpad
    开源的跨开台程序崩溃报告系统。
2、Google URL
    /src/googleurl
     Google小巧的URL解析整理库。
3、Skia
    /src/skia
    矢量图引擎。
4、Google v8
    /src/v8
    Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。
5、Webkit
    /src/webki
    开源的浏览器引擎
6、Netscape Portable Runtime (NSPR)
    /src/base/third_party/nspr
    Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。
7、Network Security Services (NSS)
    /src/base/third_party/nss
    Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。
8、Hunspell
    /src/chrome/third_party/hunspell
    Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
    /src/chrome/third_party/wtl
    用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。
10、Google C++ Testing Framework
    /src/testing/gtest
    Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 与 bspatch
    /src/third_party/bsdiff 及 /src/third_party/bspatch
    bsdiff 与 bspatch 用于为二进制文件生成补丁。
12、bzip2
    /src/third_party/bzip2
    bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。
13、International Components for Unicode (ICU)
    /src/third_party/icu38
    ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。
14、libjpeg
    /src/third_party/libjpeg
    用于处理JPEG (JFIF)图像格式的库。
15、libpng
    /src/third_party/libpng
    PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。
16、libxml
    /src/third_party/libxml
    C语言的XML解析库。
17、libxslt
    /src/third_party/libxslt
    C语言的XSLT库。
18、LZMA
    /src/third_party/lzma_sdk
    LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。
19、stringencoders
    /src/third_party/modp_b64
    一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
    /src/third_party/npapi
    多种浏览器使用的跨平台插件架构。
21、Pthreads-w32
    /src/third_party/pthread
    用于编写多线程程序的API
22、SCons - a software construction tool
    /src/third_party/scons
    开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。
23、sqlite
    /src/third_party/sqlite
    大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。
24、TLS Lite
    /src/third_party/tlslite
     SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。
25、zlib
    /src/third_party/zlib
    zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。

分享到:
评论

相关推荐

    google_chrome浏览器编译过程

    ### Google Chrome 浏览器编译过程详解 #### 一、搭建编译环境 Google Chrome 是一款由 Google 开发的免费开源网页浏览器,基于 Chromium 项目。为了编译 Google Chrome,首先需要准备合适的编译环境。 ##### 1. ...

    chrome源码下载编译.docx

    ### Chrome Chromium 源码下载与编译指南 #### 一、引言 随着开源项目的日益普及和技术人员对底层技术的探索欲望不断增强,越来越多的人开始尝试深入研究诸如Chrome这类复杂软件的技术实现细节。本文旨在详细介绍...

    VS2008编译完整chrome过程

    经过两周探索编译chrome源码,终于编译出了google浏览器的chrome.exe文件,编译方法总结为一篇文档

    谷歌浏览器安装包 Google Chrome.exe

    谷歌浏览器,全称为Google Chrome,是由全球知名科技公司谷歌开发的一款免费、开源的网络浏览器。它以其简洁的界面设计、高效的速度以及强大的安全性而受到广大用户的喜爱。Chrome浏览器基于开源项目Chromium,但...

    谷歌Chrome浏览器x86版APK低版本Android4.4可用浏览器版本是72.0

    这款“谷歌Chrome浏览器x86版APK低版本Android4.4可用浏览器版本是72.0”是专为使用x86架构设备的用户设计的,如某些平板电脑和安卓模拟器。对于那些在Android 4.4(KitKat)系统上运行的设备,这是一个理想的解决...

    google chrome cef4 binary debug库文件

    **谷歌Chrome CEF4二进制调试库文件详解** 谷歌Chrome浏览器是基于Chromium开源项目的,而CEF(Chromium Embedded Framework)则是一个用于在应用程序中嵌入Chromium浏览器引擎的框架。CEF4是CEF的一个特定版本,它...

    Google Chrome 开发者版.zip

    2. **V8 JavaScript引擎**:V8是Chrome内置的高性能JavaScript执行引擎,采用即时编译(JIT)技术,能够快速执行JavaScript代码,提高网页应用的性能。 3. **多进程架构**:Chrome采用多进程架构,每个标签页、插件...

    google chrome cef4 binary

    标签"google chrome cef4 binary"进一步确认了这个压缩包与CEF4的二进制文件相关,可能包含CEF4的编译输出。 压缩包中的文件列表提供了关于CEF4项目构建和资源的信息: 1. `cef_paths.gypi` 和 `cef_paths2.gypi`...

    google chrome 60

    谷歌Chrome 60是谷歌公司推出的第60个版本的Chrome浏览器,这是一个广泛使用的网络浏览器,以其速度、安全性和稳定性而著称。Chrome 60的发布带来了许多更新和改进,旨在提升用户的浏览体验和开发者的工作效率。在这...

    google Chrome源码剖析

    Chrome 浏览器作为 Google 推出的一款革命性的浏览器,以其高效、稳定和安全的特点赢得了全球用户的青睐。它的设计和实现有许多值得深入研究的地方,包括多进程架构、V8 引擎、插件模型以及跨平台的 UI 控件系统。 ...

    谷歌chrome浏览器

    谷歌Chrome浏览器是由全球知名的科技公司谷歌(Google)开发的一款网页浏览器,自2008年发布以来,凭借其卓越的性能、简洁的界面以及强大的安全特性,迅速在全球范围内获得了广泛的认可和使用。它采用了先进的Blink...

    google chrome代码分析

    在资源编辑器中完成修改后,重新编译项目,生成新的DLL,然后运行编译后的Chrome,即可看到修改后的效果。 关于对话框的显示逻辑位于`about_chrome_view.cc`文件中,该文件定义了一个名为`AboutChromeView`的类,这...

    google chrome更新工具包

    Google Chrome是一款广受欢迎的开源网页浏览器,以其快速、安全和用户友好的特性著称。由于其开发网址被封,导致用户无法直接通过官方渠道获取最新的源码和进行更新。为了解决这个问题,我们有了“google chrome更新...

    CEF嵌入google chrome内核的浏览器

    CEF(Chromium Embedded Framework)是一种开源框架,它允许开发者在自己的应用程序中嵌入Google Chrome的Blink渲染引擎和V8 JavaScript引擎,从而实现基于Web技术的用户界面。CEF的使用可以带来高性能、现代的Web...

    Google Chrome 69.0.3497.81版

    **谷歌Chrome 69.0.3497.81版详解** 谷歌Chrome浏览器是全球最流行的网页浏览工具之一,以其快速、安全和稳定著称。69.0.3497.81版作为其中的一个重要版本,不仅在性能上进行了优化,而且在用户界面和功能上也有...

    编译好的vue工具,直接加载到谷歌浏览器,这个是打包了的vue-devtools-chrome.crx

    编译好的vue工具,直接加载到谷歌浏览器,这个是打包了的。可以直接加载到谷歌浏览器中。使用方法,打开谷歌扩展程序,把这个文件拖入就可以了

    Google chrome

    Chrome内置的V8引擎是JavaScript执行的利器,它能够快速解析和执行JavaScript代码,提供即时编译功能,使得网页应用的响应速度大幅提升。V8引擎还支持新的JavaScript语言特性,如ES6模块、Promise和async/await等,...

    信安chrome离线包

    【标题】"信安chrome离线包"所指的是一个专为麒麟信安系统定制的Google Chrome浏览器离线安装包。麒麟信安系统是中国自主研发的操作系统,主要服务于国家安全、政府、军事等领域,它需要与普通Windows或Linux系统...

    chrome v8 vs2010编译指导及 helloworld测试工程

    在IT领域,Google V8引擎是一款著名的开源JavaScript虚拟机,被广泛应用于Chrome浏览器以及Node.js等项目中。本文将详细阐述如何使用Visual Studio 2010(VS2010)来编译V8引擎,并创建一个"Hello, World!"测试工程...

    Google 浏览器Chrome 那么多进程怎么办?.docx

    Google 浏览器 Chrome 解决多进程问题 Google Chrome 浏览器在每次打开新标签页时,会在系统进程中加入一个新的 Chrome.exe 进程,这使得任务栏管理器中显示许多 Chrome.exe 进程,占用了很多内存空间。下面将介绍...

Global site tag (gtag.js) - Google Analytics