Chrome代码下载及编译

时间:2024-01-15 11:57:56

2-3年前在做客户端开发时,看过CHROME的一部分代码,主要是BASE库相关的。其项目之大,编译时间之长给我留下了深刻的印象。

3年后的最近,想着再读一下其他部分的代码,所以就对其纠结的下载和编译过程做下总结。

网上的一些文章都是比较过时的,按照那些文章的做法基本没啥戏。其实,仔细阅读chromium中关于Get Source Code页面的说明就能开耍了。现在的整个流程要比之前的流程感觉清晰多了。

我的环境是WIN7 SP1 + VS2013 UPDATE4。最新的chrome代码引入了一些C++11的特性,所以用13是必须的。

具体流程

  1. VPN一枚。天朝的特殊需求,大家懂的。
  2. 下载depot_tools,具体流程可以参考这个页面。下载好后,在系统变量PATH中添加depot_tools的路径。
  3. 然后设置系统变量set DEPOT_TOOLS_WIN_TOOLCHAIN=0 这个系统变量可以提前设置。
  4. 打开cmd,输入fetch --nohooks chromium 开始进入漫长的下载过程,会下载很多必备的工具,比如python,git之类的
  5. 执行gclient,会检查一些环境,继续更新一些东西
  6. 执行gclient sync,同步最新的代码,同步其他模块之类的
  7. set GYP_MSVS_VERSION=2013
  8. set GYP_GENERATORS=msvs-ninja,ninja
  9. set GYP_DEFINES=component=shared_library, 以DLL方式编译,你如果不想就不用设置这个变量
  10. 执行gclient runhooks,开始生成项目之类的
  11. cd src,切换到src目录下
  12. ninja -C out\debug chrome,开始编译

遇到的问题

编译过程中提示一些编码问题,放狗搜了下,我把系统的“非Unicode程序的语言”设置为英语(美国)后重启再编译就好了。

我用的机器是E5的CPU,SSD盘,96G内存,编译一共用了差不多1个半小时。留图纪念下:

Chrome代码下载及编译