艰难的编译Chrome之旅

曾经听原同事说Chrome架构很好,内部有多线程和多进程框架,因此也想尝试一下。
第一次:用svn 从http://src.chromium.org/svn/trunk/ 上下载,结果.sln和vcproj也没有。只能继续找教程,看需要gclient runhooks 生成.sln
恰好我的机器上安装了google+ 有一个 gclient.exe 结果怎么运行都没有反应。后来终于发现错了。从
下载下来,然后运行
gclient runhooks 生成了.sln为vc2008 下运行的.在编译过程中 c99conv.py 转化C99-->C89出现错误,因为 cl.exe产生预编译过程中vc2008的
cl.exe不支持那个参数(/Fi)需要vc2010才可以
于是安装vc2010 因为.sln是vc2008版本的,vc2010转换失败,于是放弃从trunk 上下载代码
在此过程中还下载了Windows 8 SDK和 Windows Kit 
第二次 使用gclient 下载代码
gclinet config http://src.chromium.org/svn/trunk/releases/25.0.1364.80
gclient sync
gclient runhooks
下载并声称.sln 文件。
在此过程下载了Direct X 10
在编译的时候出现 VC2008 不支持原C++版本的 函数默认值为int 和 for 中定义 变量 的问题,所以也放弃了这次尝试 
遇到 TortoiseSVN版本高,而在下载的Depot_tools 中的svn.exe 版本低出现的问题,将高版本的svn.exe 替换低版本的就OK了
还遇到一个 typedef Return_type __success(return >= 0) LONG NTSTATUS; 这个编译出错的问题
第三次 
看了这个博客http://blog.163.com/cp7618@yeah/blog/static/702347772012812115555171/后 决定使用他用的版本试一下
设置环境变量 GYP_MSVS_VERSION = 2008
gclinet config http://src.chromium.org/svn/trunk/releases/4.1.249.1064
gclient sync
gclient runhooks


使用devent chrome.sln /build "debug|win32" 编译了几个小时,终于通过


最后机器上安装了:
Direct X 10 SDK
Windows 8 SDK
Windows Driver Kit 7600
Windows 7 SDK
VC2008 +VC2008 SP1
VC2010 + VC2010 SP1
参考:
http://blog.163.com/cp7618@yeah/blog/static/702347772012812115555171/
http://stackoverflow.com/questions/3378622/how-to-understand-the-ntstatus-nt-success-typedef-in-windows-ddk
http://www.chromium.org/developers/how-tos/build-instructions-windows#TOC-Unit-tests













你可能感兴趣的:(开源学习)