chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2)
chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2)
http://www.aichengxu.com/diannao/1000251.htm
前后折腾了四天,当中好多次都郁闷得想放弃,不过还好坚持了下来,也最终克服和因难。反思如此艰难的原因,一是因为英文不太好,所以只能找中文的文章来借鉴;二是中文的文章也大都过时了。所以,尽管通宵得身体都发抖了,还是坚持把操作成功的过程记下来。chormium的结构转变得太快了,说不定后天我的方法就过时了,越早写出来,也许能更多地帮到他人。
不得不提的是,正是更新下载经验日期最近的人给我的帮助最大,而两、三年前的人把我坑得最苦。。。。。
这里有两篇目前值得借鉴的文档,放在这里,互相印证吧:
http://blog.csdn.net/wangcheng711/article/details/38419869
http://blog.csdn.net/glunoy/article/details/23591047
下面开始我的经验讲述(所有列出命令在cmd.exe下执行):
一、预热
1.安装win7 64位与vs2013 sp2(毕竟我只有这个环境的经验,其他环境只能你自己摸索了),准备至少15G的硬盘空间(如果你还要编译的话,x4吧,呵呵,反正我有200G。。)
2.学会使用cmd命令cd和set.
3.学会设置环境变量,请自行百度;需要注意的是,在cmd.exe中使用set设置的环境变量并没有真的保存,也就是说,如果你把这个cmd窗口关了,原来set的环境变量需要重新设置(至少我电脑上是这样的,具体的可以自行测试)
4.决定要下载的版本号。可以找一个稳定版的chrome浏览器,获得它的版本号。最好不要用最新的,因为下载后,不一定能编过,到时候就头疼了。(我第一次是下载的trunk的,结果坑了,最后是下载release的成功了,所以我也不知道trunk的代码是不是也可以像下面我说的一样下载)
二、开始配置行动
1.下载depot_tools.https://src.chromium.org/viewvc/chrome/trunk/tools/,这个目录下有一个depot_tools.zip的文件,点一下就可以下载了。下载后,解压到某个位置。我就放在D:\下,所以生成了D:\depot_tools文件夹,把这个文件夹路径(D:\depot_tools)加入PATH环境变量。
2.新建一个文件夹,注意最好是英文名称且无空格。上面depot_tools的文件夹也是。像我就新建了e:\chromium。然后cd到此文件夹下,执行gclient config
http://src.chromium.org/svn/releases/39.0.2132.2,这里最后面应该是你自己选择的版本号。可以在
https://src.chromium.org/viewvc/chrome/releases/ 查看所有release版本。
3.上述命令会下载python276并安装,下载SVN并安装,下载Git并安装。但是国内是联不上Git所在的服务器的,所以要么改脚本,要么上VPN。我花了18块买了一个月的VPN,Git也下好了,就是安装了好几次都会出错,在网上搜索了一大圈,也没找到办法。不管了,反正也不知道是干什么的,有SVN应该就够了。进行下一步。
4.执行gclient sync。有的人说是gclient sync --force,反正我是用的前面的,--force参数不知道有什么用。然后就是漫长的下载,速度还是很快的,4M网速完全可以撑满。这里要下载大约10G的代码,以及win8SDK等很多东西。其他人都说有的东西可以不用下载的(4G多),但是要改脚本。我懒得改了,就让它下吧。其间断了几次网,反复执行了好几次gclient sync。证明反复执行是没有问题的,不用担心^_^(我不会告诉你我反复执行是有多害怕,害怕会全部重下。。)。最后,可以看到已更新到version:xxxxx。呃,其实是英文,我没记住。但是最后四个字母是"Done"。所以如果你没看到done,就再执行下命令吧。
5.漫长的下载后,我们终于见到曙光了。但是先别急。打开e:\chromium\src\build目录下的common.gypi。搜索msvs_disabled_warnings。有一个地方禁用了"很多很多"警告,我们也在这里模仿加上4996, 4067, 4800, 4251 保存关闭。
6.要开始生成.sln文件了。但是其实这步是最难的。让我在网上找了好几个小时的解决办法。
你现在应该还在e:\chromium的目录,再进一层到src,依次执行命令:
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2013
set GYP_DEFINES=component=shared_library
set GYP_GENERATORS=ninja,msvs
set USE_AURA=1
gclient runhooks
注意最后一个命令:set GYP_GENERATORS=ninja,msvs,原本我看别人的文档是set GYP_GENERATORS=msvs,还专门强调了,但是我这样用,就会出现错误:
Traceback (most recent call last): File "src/build/landmines.py", line 227, in <module>
sys.exit(main())
....
完全找不到头绪,也是我运气好,尝试了设置了set GYP_GENERATORS=ninja,msvs,然后执行gclient runhooks,竟然又下载安装了一些东西,就成功了。想来就是chromium在最近又有了改动。
7.上面的命令执行完后,就可以找到src\chrome下面的chrome.sln,进行编译了。我用vs2013打开后,有900多个工程。编到200多时还卡住了,没有成功。最后找了一个较小的sln项目,改了几个错误,倒是成功了。
最主要出现的错误是:a.将警告视为错误,没有生成obj文件,这个只要将"将警告视为错误"改为否就行了,可以百度;
b.在当前页(xxx)下无法....请保存为Unicode文件,这个只要对报错的文件CTRL+A,然后点击VS2013的文件->高级保存选项,保存为Unicode(1200)就可以了。
c.无法访问的代码。这是一个4级警告,把警告级别调为3级就可以了。应该可以设置脚本吧,不然900多个,改到何年何月?不过我还不会。。
8.第六步完成后,理论上src等文件夹图标上应该是有一个绿色的小勾的。如果没有,选中此文件夹右键,会有SVN菜单“更新工作区XX”,更新下就可以了。
以上就是我的大部分经验,希望可以帮到某个正在郁闷的人~
睡觉去Orz
chromium源代码下载(Win7x64+VS2013sp2, 39.0.2132.2)的更多相关文章
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转
效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载]) 本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 ...
- Android源代码下载方法具体解释
作者:张星 相信非常多下载过内核的人都对这个非常熟悉 git clone git://android.git.kernel.org/kernel/common.git kernel 可是这是在曾经,如 ...
- jQuery粘性跟随滚动条滚动的导航栏源代码下载
jQuery粘性跟随滚动条滚动的导航栏源代码下载 作者:网页模板 大小:0.005MB 点击次数:3494 发布时间:2014-03-07 12:55 分享到:0 特效介绍 jQuery粘性跟随滚动条 ...
- WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
原文:WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码 ...
- AppBox_v2.0完整版免费下载,暨AppBox_v3.0正式发布!
文章更新: AppBox v6.0中实现子页面和父页面的复杂交互 AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox ...
- 文顶顶iOS开发博客链接整理及部分项目源代码下载
文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程 ...
- 基于视觉的Web页面分页算法VIPS的实现源代码下载
基于视觉的Web页面分页算法VIPS的实现源代码下载 - tingya的专栏 - 博客频道 - CSDN.NET 基于视觉的Web页面分页算法VIPS的实现源代码下载 分类: 技术杂烩 2006-04 ...
- WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]
原文:WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过ServiceMetadataBehavior实现了基于WS-ME ...
- mysql+ssh整合样例,附源代码下载
项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源代码下载地址:http://download.csdn.net/detail/ ...
随机推荐
- @property, @classmethod基本用法
@property 废话少说,贴上代码(代码参考@廖雪峰教程) class Student(object): def __init__(self, score): self._score = scor ...
- python 正则表达式 (重点) re模块
京东的注册页面,打开页面我们就看到这些要求输入个人信息的提示.假如我们随意的在手机号码这一栏输入一个11111111111,它会提示我们格式有误.这个功能是怎么实现的呢?假如现在你用python写一段 ...
- DFS——CodeForces740DAlyona and a tree
一.题目回顾 题目链接:Alyona and a tree Examples Input 52 5 1 4 61 71 13 53 6 Output 1 0 1 0 0 Input 59 7 8 ...
- (转载)MYSQL千万级数据量的优化方法积累
转载自:http://blog.sina.com.cn/s/blog_85ead02a0101csci.html MYSQL千万级数据量的优化方法积累 1.分库分表 很明显,一个主表(也就是很重要的表 ...
- XML序列化器读取XML数据
PS:标题我还真的不知道该怎么取比较好,大家将就下吧^_^ 场景:上周接到一个任务,要求我把ASP写的会员充值功能,用ASP.NET复制一遍,没有给我需求文档,就是让我根据代码去分析业务逻辑,然后看到 ...
- chrome谷歌浏览器导致的密码被修改现象
版本 68.0.3440.106(正式版本) (32 位)记住密码功能有个缺陷,会把自己的密码自动填写到别人的密码框中,假如这个时候点击保存密码,就会导致其他用户的密码被修改为登录用户的密码. 很 ...
- java文件的I/O
[原创] java文件的I/O操作,简单来说就是向文件中写入数据以及从文件中读出数据,这是我们平日做的最多的操作,这里给出两种文件I/O操作,当然还有许多的操作方法,各种流的使用,可谓是高深莫测:不管 ...
- oracle补充
索引 索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据的I/O次数,因此可以显著的提高性能 创建索引的SQL 把下面表中的na ...
- Hibernate常用方法之_插入
1.使用session的save方法进行插入 public void saveUser(User user){ Session session = null; Transaction transact ...
- 【考试记录】4.8 Table ( 数论数学 --组合数 & 杨辉三角)
陆陆续续的开始考很多的试,也会更新这些题目记录下来,免得做完了之后毫无印象,就这么水过去了(以前的考试都是如此,哎……) Table (T1) : 样例: 出于对数学题本能的恐惧考场上放弃了此题专攻T ...