Chrome在Visual Studio 2005下的编译过程 zz

Chrome在Visual Studio2005下编译过程(续) 在前文Chrome在Visual Studio 2005下的编译过程中,描述的编译过程,遗漏了版本说明,我本人取的是buildbot版本chromium.r20011,到写本文的时候,Chrome版本已经是chromium.r20473了。根据一位网友的反馈,现在执行gclient runhooks --force已经没有效果了,gyp.bat已经从SVN中去掉了,目前最新版本的编译方法没来得及研 阅读详情

编译篇 

研究Chrome ,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个 Chrome 浏览器来使用,那是一件很炫的事情。 

 

(声明:本文所编译的版本是2009.7.12号的chromium.r20011版本,目前最新的版本编译方法已经发生了变化,所以请在参考本文的同时,请参考另外一篇《Chrome在Visual Studio2005下编译过程(续)》的补充说明。)

 

 

 

编译环境准备 

Chrome的编译和 WebKit 相比起来,难度上来说,简直是一元二次方程求解和偏微分方程求解的对比(我到现在还没有完整的把 WebKit 编译出来,鄙视一下自己)。虽然 Chrome 也是从 WebKit 演进过来,差不多也就是把 WebKit 的 JS 引擎替换成了 V8 。但是不得不承认 Google 把 WebKit 的编译难度降低了几个数量级。 

 

言归正传,Chrome 官方网站上公布的是基于 Visual Studio 2005 进行编译,网上也有兄弟基于 Visual Studio 2008 编译成功过,但我手头上没有 Visual Stdio 2008 ,所以无从得知。本文也是以 Visual Studio2005 环境为例。我曾经在自己家里的电脑上用 Visual C++ 2005 Express 版本编译过,没有成功。在 XP Professional 和 Vista Home 两个操作系统上均编译成功。 

 

在下载Chrome 代码前,需要安装下面几个软件: 

 

1.  安装Visual Studio 2005. 

 

2.  安装 Visual Studio 2005 Service Pack 1 . 

 

3.  安装热补丁 Hotfix 947315 . 

 

4.  如果操作系统是Vista ,还需要安装 Visual Studio 2005 Service Pack 1 Update for Windows Vista 。 

 

5.  安装 Windows 2008 SDK 。按照网上说法,如果是Visual Studio 2008 ,就不需要安装这个了。 

 

6.  配置Windows 2008 SDK 。在开始 -> 程序 -> Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool .。选择 make current 按钮,幸运的话,应该能一次成功。如果不能成功, Chrome 官方网站上有一个 手动配置 的帮助,大家可以参考。 

 

下载 代码 

Google为 Chrome 提供了一个一个部署工具 depot_tools ,包括下载代码、同步代码、上传代码等功能。这个工具采用Python 编写的,其中还包含了一些 Javascript 脚本。 Depot_tools 中包含了一个 gclient 工具,是我们需要关注的重点。 

 

下载代码有几 种 方式: 

 

1.  Chrome官网上提供了一个 源代码包 ,可以直接下载下来。不过这个包并不是最新的包。我采用的是这种方法进行下载的,相对来说比较快。 

 

2.  采用SVN 客户端工具进行下载,比如 TortoiseSVN 客户端工具, SVN 服务器地址是 http://src.chromium.org/svn/trunk/src 。 

 

3.  采用google 提供的 depot_tools 工具。 

 

l  下载和安装 depot_tools 。 

 

l  把depot_tools 的安装目录设置到系统目录(系统 Path 环境变量 ) 中。 

 

l  创建一个存放Chrome 代码的目录,比如 d:/chrome 。目录不要包含空格。 

 

l  在命令行下,先将当前目录切换到chrome 代码的目录,例如上面的 (d:/chrome) 。 

 

l  运行 gclient config http://src.chromium.org/svn/trunk/src 命令。Gclient 将会先下载 svn 工具和 python 工具,然后调用 svn 进行代码同步。 

 

注意: gclient 中下载svn 和 python 采用的是 javascript 实现。如果在需要设置 proxy 的环境中,则需要需要修改一下脚本。 

 

1. 打开X:/ depot _tools/bootstrap/win/get_file.js文件。其中 X 是你的安装盘符。 

 

2. 将Line9-Line22 行之间的代码 

 

try { 

 

    xml_http = new ActiveXObject("MSXML2.ServerXMLHTTP"); 

 

  } catch (e) { 

 

    WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +  

 

        ": Cannot create Active-X object (" + e.description) + ")."; 

 

    WScript.Quit(1); 

 

  } 

 

  try { 

 

    xml_http.open("GET", url, false); 

 

  } catch (e) { 

 

    WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +  

 

        ": invalid URL."); 

 

    WScript.Quit(1); 

 

  } 

 

修改成 

 

try { 

 

    xml_http = new ActiveXObject("MSXML2. ServerXMLHTTP.5.0 "); 

 

  } catch (e) { 

 

    WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +  

 

        ": Cannot create Active-X object (" + e.description) + ")."; 

 

    WScript.Quit(1); 

 

  } 

 

  try { 

 

     xml_http.setProxy(2, proxyIP:Port); 

 

    xml_http.open("GET", url, false); 

 

     xml_http. setProxyCredentials(username,pwd); 

 

  } catch (e) { 

 

    WScript.StdOut.WriteLine("[-] XMLHTTP " + new Number(e.number).toHex() +  

 

        ": invalid URL."); 

 

    WScript.Quit(1); 

 

  } 

 

编译 代码 

如果你是下载的源代码包,则需要先解压,这个代码包是双重压缩。估计要把所有代码解压下来,半个小时左右,我在我的本本上是花了将近半个小时时间才解压出来,解压下来所有代码的大小是3 个多 G 。 

 

从网上搜索了很久相关Chrome 编译相关的材料,大家都反馈在 src/chrome 目录下有 chrome.sln 文件,直接打开这个 sln 就可以利用 Visual Studio 2005 进行编译了。但是我翻遍所有代码却找不到这个文件,让我郁闷了很久,开始怀疑是我下的代码版本问题,在线查看了 Chrome 的 SVN 目录,发现最新版本也没有这个文件了。检查一下网上的那些文章基本上都是 2008 年的文章,开始怀疑是否是 chrome 做了改变,但是从 chrome 的官网上: 

 

Building Chromium 

 

1  Open the  chrome/chrome.sln  solution file in Visual Studio and build the solution. This can take from 25 minutes to 1 hour. 

 

2  If you just want the Chromium browser, and none of the tests, you can speed up your build by right-clicking the  chrome  project in the solution explorer and selecting  Build . You may want to make sure this project is the  Startup  project (which will display as bold) by right-clicking it and selecting  Set as Startup Project . This will make Chromium (as opposed to some random test) build and run when you press  F5 . 

 

来看,似乎没有更新。最后在线翻阅了chrome 的开发 group 论坛,才知道 Chrome 确实作了修改,原来代码中的那些 .sln 、 .vcproj 文件全部抛弃了, google 自己开发了一个脚本工具 GYP 工具,这个工具也是采用python 编写的。 GYP 采用了自定义的一套规则,用于生成各种工程文件。我们可以看一下下面这个gyp 文件。 

 

{ 

 

  'includes': [ 

 

    '../../build/common.gypi', 

 

  ], 

 

  'targets': [ 

 

    { 

 

      'target_name': 'memory_watcher', 

 

      'type': 'shared_library', 

 

      'msvs_guid': '3BD81303-4E14-4559-AA69-B30C3BAB08DD', 

 

      'dependencies': [ 

 

        '../../base/base.gyp:base', 

 

      ], 

 

      'defines': [ 

 

        'BUILD_MEMORY_WATCHER', 

 

      ], 

 

      'include_dirs': [ 

 

        '../..', 

 

      ], 

 

      'sources': [ 

 

        'call_stack.cc', 

 

        'call_stack.h', 

 

        'dllmain.cc', 

 

        'hotkey.h', 

 

        'ia32_modrm_map.cc', 

 

        'ia32_opcode_map.cc', 

 

        'memory_hook.cc', 

 

        'memory_hook.h', 

 

        'memory_watcher.cc', 

 

        'memory_watcher.h', 

 

        'mini_disassembler.cc', 

 

        'preamble_patcher.cc', 

 

        'preamble_patcher.h', 

 

        'preamble_patcher_with_stub.cc', 

 

      ], 

 

    }, 

 

  ], 

 

} 

 

 

 

其实这个文件的内容和visual studio 2005 中的 .vcproj 文件虽然有比较大的差别,但是描述的东西没有太大变化,更简单更简洁一些而已。无非描述了工程的文件,编译设置等内容。 

 

下面描述一下编译步骤: 

 

1.  运行命令行工具。 

 

2.  切换到Chrome 主目录下(我的电脑是 d:/chrome 目录)。 

 

3.  执行gclient runhooks --force 。这个命令将会调用 GYP 工具,对 Chrome.gyp 进行解析,生成各个 Visual Studio2005 工程文件。 

 

4.  双击chrome/chrome.sln 文件,即可打开 Visual Studio 2005 ,一共有 215 个工程,非常庞大。 

 

右键选择解决方案,选择生成解决方案,编译开始了。这个过程在我的本本里是持续了2 个小时左右, CPU 前一个多小时都是持续 100% ,害得我连看电影都卡的不行了。编译后的文件放置在 chrome/debug 目录下(我编译的是 debug 版本)。整个编译下来, Debug 目录增加了将近 7 个 G 的东东,实在是恐怖!要编译 Chrome ,至少要保留 10 个 G 的空间。 

 

总结 

整个编译Chrome 的过程说实话还是花了我不少的力气,不过看着编译出来的 chrome, 心里还是很 happy 的。 

 

 

 

 

在我编译的过程中主要遇到的几个问题: 

 

1.  公司有Visual Studio2005 ,可是因为 Proxy 的原因, depot_tools 工具无法进行,为了突破 proxy 的限制,花了不少力气。 

 

    2. Chrome工程组织方式发生了变化,但在官网上没有更新,网上其他的资料都是基于旧的版本介绍,所以在适应新的 gyp 方式方面花了不少力气。 

 

 

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/xingtian713/archive/2009/07/12/4342003.aspx

编译Chrome源代码 编译Chrome源代码前几天下载了Chrome的源代码,源代码加上各种资源文件打包都有400多兆,展开有1G多,Build完需要有10G多的硬盘!但是Chrome的安装包又很轻巧,所以我想将来还是应该出一个简洁版的源代码包,至少可以只编译产生一种语言支持的结果,10G的build输出实在有点可怕。 因为我的Vista上有Visual Studio2008,就用VS2008来编译,失败了。官 阅读详情

相关推荐

Android 默认授予所有应用权限以及特殊权限处理

PackageManagerService作为android的主要系统服务之一,包含处理应用权限相关的职责。源码地址如下:在PMS成功启动时并收到回掉systemReady回进行应用权限授予。DefaultPermissionGrantPolicy为权限处理策略管理类。这里并没有赋予所有系统应用权限,所以当进行应用时还是会显示权限检查的弹框。可通过此方法进行所有应用权限赋予:如果不想所有应用都授予权限,可考虑在system/etc下的权限相关xml文件添加应用包名和所需权限。

Jimmy的专栏 1509

Visual Studio 2005中编译调试新功能

最近学习asp.net 2.0时新编译修改的一篇文章,原文发表在http://dev.yesky.com/msdn/359/2195359.shtml上,现转到这里。   在日常的编程中,程序员经常离不开的工作之一,就是调试。当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。在最新出炉的Visual Studio 2005中,将提供十分强...

jackyrongvip的专栏 206

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1058

Chrome在Visual Studio 2005下的编译过程

编译篇 研究Chrome ,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个 Chrome 浏览器来使用,那是一件很炫的事情。 (声明:本文所编译的版本是2009.7.12号的chromium.r20011版本,目前最新的版本编译方法已经发生了变化,所以请在参考本文的同时,请参考另外一篇《Chrome在Visual Studio2005下编译过程(续)》的补充

人生若只如初见 9450

CVAT本地部署保姆级教程:用Docker Compose在Ubuntu上5分钟搞定你的私有数据标注平台

本文提供CVAT本地部署的保姆级教程,详细讲解如何在Ubuntu系统上使用Docker Compose快速搭建私有数据标注平台。从环境准备、Docker配置到CVAT部署全流程,涵盖硬件要求、性能优化及安全加固等关键步骤,帮助开发团队5分钟内完成高效、安全的标注环境搭建。

weixin_42619742的博客 383

400G光模块测试全攻略:从PCS层到CMIS合规的避坑指南

本文为网络设备测试工程师和光通信研发人员提供了一份详尽的400G光模块测试实战指南。文章深入剖析了从PCS层信号完整性、FEC容限到CMIS管理接口合规性测试的全流程,并分享了ANLT协议分析、SerDes眼图调试以及系统级流量压力测试中的核心技巧与常见避坑点,旨在帮助读者构建一套高效、精准的测试体系,确保高速光模块的可靠性与性能。

weixin_29300931的博客 210

Chrome在Visual Studio 2005下的编译过程 - 转

编译篇 研究Chrome,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个Chrome浏览器来使用,那是一件很炫的事情。 编译环境准备 Chrome的编译和WebKit相比起来,难度上来说,简直是一元二次方程求解和偏微分方程求解的对比(我到现在还没有完整的把WebKit编译出来,鄙视一下自己)。虽然Chrome也是...

weixin_30426957的博客 85

Ragflow技术栈分析及二次开发指南

Ragflow是目前团队化部署大模型+RAG的优质方案,不过其仍不适合直接部署使用,本文将从实际使用的角度,对其进行二次开发

兴趣使然的创作者 1万+

Chrome编译

转自 http://blog.sina.com.cn/s/blog_557946010100ecu0.html 编译篇 研究Chrome,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个Chrome浏览器来使用,那是一件很开心的事情。编译环境准备  Chrome的编译和WebKit相比起来,难度上来说,简直是一元二次方程求解和偏微分

e13359的专栏 772

VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,

摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。

金牌架构师 1253

【WorkBuddy专栏09】WorkBuddy多模态能力深度揭秘

【WorkBuddy专栏09】AI不止会聊天——WorkBuddy多模态能力深度揭秘

AI人人懂 2106

在 Win7 下使用 VS2005 编译 Chrome

在 Win7 下使用 VS2005 编译 Chrome 2010年06月15日   在 Win7 下使用 VS2005 编译Chrome   Chrome 是浏览器的新秀,无论从启动速度、Js 执行速度、更新速度来说,都是最佳的。最主要的是,Chrome 还是开源的,拿来研究一定不错。本文所编译的 Chrome 版本为 Revision:49506(2010.06.11),Chrom...

iqe927cc 273

广义正态分布优化算法(GNDO)详解:从理论到实践

广义正态分布优化算法(GNDO)是一种基于正态分布理论的新型元启发式优化算法。该算法通过局部开发和全局探索两种策略平衡搜索过程:局部开发利用广义平均位置和标准差进行精细搜索,而全局探索通过随机个体信息共享扩大搜索范围。GNDO具有参数少、结构简单、收敛速度快等优点,在光伏模型参数提取等工程优化问题中表现优异。算法将种群位置更新与正态分布参数调整相联系,通过自适应机制平衡探索与开发,数学分析表明其具有全局收敛性。相比传统优化算法,GNDO在探索能力和开发能力上均有优势,是高维复杂优化问题的有效解决方案。

qq_42212808的博客 137

Google Chrome 构建指南

首先,配置开发环境: 安装VS2005,全部安装,不要只选VC++。 安装VS2005 SP1,根椐VS的语言选择安装,这里给出的链接是中文版的。 安装Windows SDK 2008,安装完后,执行:开始|所有程序|microsoft windows SDK v6.1|Visual Studio Registration|Windows SDK Configuration tool 将最新的S...

编程资料大全 116

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

chromium 源码的下载方式

一、编译环境 本人开发环境:Windows XP + Visual Studio 2005 + Microsoft Windows SDK7 + Microsoft DirectX SDK (June 2010) 注意:建议按步骤安装 1、使用Visual Studio 2005 Visual Studio 2005  Service Pack 1。 安装补丁 Hotfix 94

zilianxingkong的专栏 3910

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

webrtc编译过程

(一).安装 depot_tools http://www.chromium.org.sixxs.org/developers/how-tos/install-depot-tools Windows 1. Download depot_tools.zip and decompress it. 或者TortoiseSVN更新: svn co http://src.chromium.

记录 1364

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Visual Studio 2005中编译调试新功能zz

关于Visual Studio 2005的Release模式VS2005 在Release模式上实现了一些“特性”,默认会输出.pdb(Program Debug Database) 文件。 要恢复“Release”模式的本来面目,需要对每个project的属性进行一些设置: Properties -> Build -> 1. Configuration :选为 Release

xj2006的专栏 1007

Webkit之编译Chrome

#编译步骤 S1.安装Microsoft Visual Studio 2005。Chrome的官方开发网站上说也支持Visual Studio 2008编译Chrome。 S2. 安装VS 2005 SP1。 S3. 安装 Windows 2008 SDK 。按照网上说法,如果是Visual Studio 2008 ,就不需要安装这个了。 S4. 配置Windows 200

845

大话Google Chrome之编译篇

 Google既嘢总喺好吸引人,哩个Chrome一出来,就听讲几受欢迎哦,宜家我都来凑下热闹,把Chrome的源代码DOWN落来编译,想好好学习下传说中的让人耳目一新的Google Chrome…毕竟Chrome喺用微软唧VS2005来开发既,所以编译起来仲喺好方便简单既,下面开始啦,担张凳仔排排坐啦哈1. 安装Microsoft Visual Studio 2005。Chrome既官

Gomen Space 2021
上一篇: 模式匹配的KMP算法详解
下一篇: chrome编译环境搭建 zz
发现心流
博客等级 码龄20年 52粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值