本文介绍在Windows系统下配置编译Chromium工程的方法。注意,本文编译的是基于gyp构建系统的Chromium工程,对于采用gn构建系统的Chromium工程可能不适用。
一、准备工作:
参考http://dev.chromium.org/developers/how-tos/build-instructions-windows
1、下载vs2013,地址是http://www.visualstudio.com/products/visual-studio-professional-with-msdn-vs
2、安装Windows 8.1 SDK,地址是https://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx
二、下载depot_tools
下载地址:https://src.chromium.org/svn/trunk/tools/depot_tools.zip
三、配置depot_tools
根据指导文档所述,将depot_tools目录加入到系统Path环境变量中:
并在命令行执行gclient,开始进行编译工具的下载和配置。
四、配置git:
安装Git的方法不在本文描述范围,请参考其它文档。
主要配置username和email信息。
五、下载Chromium源码
1、执行fetch –nohooks chromium
该阶段执行时间将会较长。
2、执行gclient runhooks
上述两步正常结束后源码工程就已生成。
六、编译
1、命令行下设置如下环境变量
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2013
表示采用的vs版本为2013。
2、生成makefile编译文件
1)首先配置编译类型,两种类型:shared_library(动态编译方式,子工程编译成动态库,最终链接较快,但生成的dll动态库很多,一般用于调试模式)和static_library(静态编译方式,子工程编译生成静态库,最终链接到少量动态库或可执行文件中,最终链接速度较慢,但生成目标文件较少,一般用于release模式)。
set GYP_DEFINES="component=shared_library" 或者set GYP_DEFINES="component=static_library"
2)设置编译目标工程gyp文件。如果编译chromium,则指定为chrome.gyp;如果编译content shell,则指定为content_shell_and_tests.gyp。
set CHROMIUM_GYP_FILE="chrome/chrome.gyp"或者
set CHROMIUM_GYP_FILE="content/content_shell_and_tests.gyp"
3)执行编译配置命令
python build/gyp_chromium
3、编译
执行命令ninja -C out/Release chrome或者ninja -C out/Release content_shell
如果无错误产生,则最终完成整个工程的编译。如下图生成chrome可执行文件及所依赖的动态库。
七、可能遇到的编译错误
1、
【解决方法】手动生成版本信息文件。
2、
【解决方法】从http://src.chromium.org/svn/trunk/deps/third_party/yasm/binaries/win/下载yasm.exe到目标路径下。
3、
【解决方法】把出错的文件用文本编辑器(如Notepad或者VS IDE)打开,重新保存。
4、
【解决方法】从https://www.microsoft.com/en-us/download/confirmation.aspx?id=44921下载Update 4,安装补丁。
5、
【解决方法】删除out目录,重新编译。可能是由于编译过程中升级VS2013导致的编译生成文件不兼容。