编译chromium

  系统为windows, 国内在windows上编译chromium的资料比较少, 我这篇文章只能作为参考, 记录我遇到的一些问题,因为chromium团队也会修改了代码,或者编译流程;

  如果你用linux或者mac,就别看这篇文章, 国外的编译文档都是linux和mac, 因为差别还是比较多的;

  15个编译流程:

    1:chrome源码; https://chromium.googlesource.com/chromium/chromium/

    2:系统要求:win7以后的版本, 处理器要求x86或x64;

    3:window下, 起码要8G的空余内存, 硬盘最好是固态的, chromium整个项目需要个10G的硬盘空间;

    4:vs2015第二版或者更新的版本, 安装的时候要选择自定义安装(选择Visual C++下的3个选项,MFC);

        

    以及window10的SDK, 反正看到SDK就选上吧 , 否则还要重新安装VC2015:

      

    5:下载depot_tools:https://src.chromium.org/svn/trunk/tools/depot_tools.zip

    6:下载以后解压, 把depot_tools设置为环境变量,  和环境变量DEPOT_TOOLS_WIN_TOOLCHAIN  = 0;

    7:创建一个chrome_build目录, 把chrome的源码放在这儿(用git下载很慢很慢);如果是mac的系统,直接参考官方文章:http://www.chromium.org/Home

mkdir chromium //创建目录
cd chromium
fetch --no-history chromium //同步代码

    8:执行gclient sync, 没问题的话, 会自动下载python和git,此时要注意, 因为有GW, 我们要让git的协议也走代理 ,

    让git走代理的前提是有一个代理服务器或者socks代理,我这边用的是socks5的代理,代理端口为本地的1080:

git config --global https.proxy  socks5://localhost:1080
git config --global core.proxy socks5://localhost:1080
git config --global http.proxy socks5://localhost:1080
git config --global http.sslVerify false

    如果要取消git的代理我们执行下列命令:

git config --system (或 --global 或 --local) --unset http.proxy
git config --system (或 --global 或 --local) --unset httpx.proxy
git config --system (或 --global 或 --local) --unset core.proxy

    9:以上那一步是给git设置代理, 代理为本地的sock5, 但是还没给python设置代理, 如果不给python设置代理, 将会导致python下载文件失败, 我们通过修改depot_tools源码的方式让python走代理

    修改几个文件, 这个路径是相对与depot_tools的目录, 目前只要改3个python脚本文件,以后就不知道了, 要根据cmd给出的错误源,自己改去:

depot_tools\gsutil.py

depot_tools\external_bin\gsutil\gsutil_4.15\gsutil\third_party\httplib2\python2\httplib2\__init__.py

depot_tools\external_bin\gsutil\gsutil_4.13\gsutil\third_party\httplib2\python2\httplib2\__init__.py

    在相关的文件import之后,主程序代码后面添加:

import win_inet_pton
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 1080)
socket.socket = socks.socksocket

    因为我本地用shadowsocks,所以把代理设置为本地的1080端口

    下载过程如果卡死,可以通过任务管理器判断后台有没有在下载, 如果真的卡死, 就ctrl+C, 强制取消, 然后重新执行gclient sync, 重新同步;

            

    10:在src目录执行,  python会链接到https://storage.googleapis.com/下载第三方依赖模块:

gclient runhooks

    12: 生成BUILD.gn文件:

gn gen out\Default

    13:到目前为止,代码算是下载完毕, 然后执行:

ninja -C out/Default chrome

     如果机器不太行的话,我们可以修改编译参数: ninja -j  配置同步编译任务的数量 , 默认是6, 如果机器比较卡就要改, 否者编译的过程会出错;

        

    14:2万多的文件, 让他慢慢编译:

      

    15:几个小时的编译以后, 成果终于出来了:

      

  参考:

    python走socks5代理的参考:http://www.cnblogs.com/diligenceday/p/5719978.html

    执行gclient时候无法下载远程rar包的解决方法:  http://longyw.iteye.com/blog/2058949

    这个哥们成功编译了chromium : http://wendal.net/2015/02/04.html

    how to use git through a proxy:  http://cms-sw.github.io/tutorial-proxy.html, 老版本的git需要手动把socks5代理转化为git代理, 新版本的不用, 所以只要有新版本的git就好了;

    chromium源码 download_from_google_storage 无法下载文件 : http://www.cnblogs.com/ayanmw/p/4500825.html

    给python安装 pypi ,让python走代理 : https://pypi.python.org/pypi/setuptools#windows-simplified

     官方文档 :http://www.chromium.org/developers/how-tos/

    只能说chromium的源码实在太坑爹了, 即使有fq了,依然是各种悲剧, 哎:http://blog.csdn.net/qhh_qhh/article/details/49078425

  注意:

    一定要给git和python设置代理, 如果使用更改host的方式实现翻墙, 会出现验证的问题,  导致python和git同步文件失败的情况

    不要使用别人下载好的项目,  因为chromium这个项目非常大, 编译会涉及到操作系统, 环境, 编译工具, chromium的版本, 以及翻墙, 文件下载失败, 验证....各种问题, 自己能翻墙下就去下

    建议大家别看网络上的chrome编译教程, 因为chrome的代码一直在更新, 现在也有了新的编译方式, 别人能够编译的, 你肯定不能编译 最好的的方法是参考官方文档, 必须看官方:

      https://www.chromium.org/developers/

      https://www.chromium.org/developers/how-tos/get-the-code

    

作者: NONO 
出处:http://www.cnblogs.com/diligenceday/ 
QQ:287101329 
微信:18101055830

windows下编译chromium浏览器的15个流程整理的更多相关文章

  1. CEF中文教程(google chrome浏览器控件) -- Windows下编译Chromium

    CEF中文教程(google chrome浏览器控件) -- CEF简介 2013-04-10 16:48 42928人阅读 评论(4) 收藏 举报  分类: CEF(2)    目录(?)[+]   ...

  2. 记录windows下编译chromium,备忘

    编译windows下chromium,时间:20170619, 官方地址:https://chromium.googlesource.com/chromium/src/+/master/docs/wi ...

  3. 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  4. osg for android学习之一:windows下编译(亲测通过)【转】

    1. 首先需要一个OSG for android的环境 (1)NDK 现在Eclipse 对NDK已经相当友好了,已经不需要另外cygwin的参与,具体可以参考 Android NDK开发篇(一):新 ...

  5. 在Windows下编译mongo-c-driver 1.3.x

    在Windows下编译mongo-c-driver 1.3.x 在Windows下编译mongo-c-driver 1.3.x 1.安装 MSYS2https://sourceforge.net/pr ...

  6. Windows下编译vpx获得各个项目VS2010解决方案的步骤

    最近研究了一下几种常见的视频编码器:x264,x265,vpx.本文简单记录一下它们的编译方法. x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器.x264现在占据着H ...

  7. [分享]windows下编译squid的经验(转)

    squid是什么我这里就不说了,这不是本文的重点,总之它是一个集:代理.加速.缓存.负载均衡.防盗链.访问控制等多功能的一个超牛X开源软件,如今已经广泛应用于很多领域.对于缓存和加速这一领域,如今各大 ...

  8. 在Windows下编译WebRTC

    前言 这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编 ...

  9. windows下编译配置libnet-1.2-rc3

    1.下载winpcap(一个底层驱动,可以嗅探.过滤网卡数据包,发包).exe安装包,傻瓜一步式安装 2.下载WpdPack_4_1_2,这个是winpcap的开发者包,解压之后只需要配置相关路径. ...

随机推荐

  1. Android项目实战(二十八):Zxing二维码实现及优化

    前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的ja ...

  2. React Native知识4-Image组件

    一个用于显示多种不同类型图片的React组件,包括网络图片.静态资源.临时的本地图片.以及本地磁盘上的图片(如相册)等 一:属性 1:onLayout function 当元素挂载或者布局改变的时候调 ...

  3. js自动完成

    源代码来自于: http://down.51cto.com/data/921955  我做了一下修改. 要做一个自动完成的功能,又不想依赖一大堆的js脚本库,我要的是定制的,代码尽可能简洁,方便修改和 ...

  4. Ubuntu下Apache+SVN+submin实现WEB管理SVN

    为什么需要submin管理SVN? 原来在Ubuntu下,都是直接通过命令行创建SVN仓库并分配权限,但是这有一些问题: 每创建一个SVN仓库,都需要修改httpd.conf 每创建一个帐户,都需要手 ...

  5. android 项目中出现红色感叹号的解决方法

    问题原因]:工程中classpath中指向的包路径错误 [解决办法]:右键项目名称 BuildPath ---> Configure Build Paht...中,然后上面有几个选项卡找到 Li ...

  6. VS2010和opencv-2.4.10、GDAL

    系统环境:win10 64位 本文只限于学习交流,商业用途请支持正版! 转载请注明:转载请注明http://www.cnblogs.com/mxbs/p/6206060.html       2016 ...

  7. [No00007F]2016-面经[下] 英文简历写作技巧

    一.简历种类 1.中式 中式简历中,常包括政治面貌,性格及身高体重等.如果中英文简历一起递交,建议中文不写政治面貌,因为如果去外企工作,背景中的政治色彩越少越好,起码没有必要让老外知道. 性格是一个主 ...

  8. vijos P1780 【NOIP2012】 开车旅行

    描述 小\(A\)和小\(B\)决定利用假期外出旅行,他们将想去的城市从\(1\)到\(N\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为 ...

  9. xcode6 beta 中智能提示(自动完成)功能有时不显示的问题

    xcode6 beta 中智能提示(自动完成)功能有时不显示的问题      周银辉 xcode6 beta 中智能提示(自动完成)功能有时不显示,这让人很郁闷啊,网上老外的视频中看人家用的好好的. ...

  10. Windows Serivce服务实现过程和打包安装

    环境:vs2013,win7 参考: Windows服务的快速搭建与调试(C#图解) .Net实现Windows服务安装完成后自动启动的两种方法 C# 生成windows 服务打包程序 1.新建项目W ...