windows7下cygwin+vs2013编译webkit源码-阿里云开发者社区

开发者社区> 微个日光日> 正文

windows7下cygwin+vs2013编译webkit源码

简介: <p style="margin-top:0px; margin-bottom:1.1em; color:rgb(51,51,51); font-family:'microsoft yahei'; font-size:14px; line-height:26px"> 先下载源码和其他依赖,然后准备cygwin的环境,安装vs2013,最后编译即可。网上没有能直接用于最新版本源码编译的教程
+关注继续查看

先下载源码和其他依赖,然后准备cygwin的环境,安装vs2013,最后编译即可。网上没有能直接用于最新版本源码编译的教程,所以我在编译过程中也遇到了很多坑。回过头来看,这些坑都是可以避免的,想要自己尝试编译的同学,可以根据本文快速的实现自己编译webkit(~除去下载文件的时间,15分钟准备环境,1小时编译完成)。

下载最近源码

最近的下载版本和源码在这里:

http://nightly.webkit.org/

我使用的源码是这个版本built on 13 October 2014 and is a 45.9 MB:

http://builds.nightly.webkit.org/files/trunk/src/WebKit-r174650.tar.bz2

安装Visual Studio 2013旗舰版

这里是第一个大坑,WTF项目的compiler.h宏里写死了必须用2012以上的版本才能编译(1800对应于2012,提示信息是建议使用2013):

C:\cygwin\home\kk\WebKit-r174650\Source\WTF\wtf\Compiler.h: 
112 #endif 
113 
114: #if defined(_MSC_VER) && _MSC_VER < 1800 
115 #error “Please use a newer version of Visual Studio. WebKit requires VS2013 or newer to compile.” 
116 #endif

我开始想试着用vs2010或vs2015来编译webkit,都有很多问题,走了弯路。比如编译libGLESv2项目时需要用vs带的ctres.exe处理嵌入资源。如果系统有多个不同的vs版本,那么就可能互相影响而出问题。所以后来我索性卸载了VS2010、vs2015,重新下载安装了vs2013旗舰版。

http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC04-6B9B7D82B1E4/VS2013_RTM_ULT_CHS.iso ~2.86G 
vs2013

KEY:BWG7X-J98B3-W34RT-33B3R-JVYW9 :)

安装cygwin

cygwin 官方直接下载的cygwin-downloader.zip绑死了cygwin源,随机选择一个,都无法访问,很蛋疼,不能自动下载需要的169个lib~110M。建议使用163的源,需要先安装一个python2.7:

https://www.python.org/downloads/release/python-279/ ~18M

然后在源码文件夹下的WebKit-r174650\Tools\CygwinDownloader\ 修改cygwin-downloader.py添加一个新的163的源(改好的文件见http://pan.baidu.com/s/1i304FQH):

mirror_servers = [“http://mirrors.163.com/cygwin/“… 
package_mirror_url = mirror_servers[0];

最后执行:

python27.exe cygwin-downloader.py

脚本会自动下载所有的依赖,然后启动安装cygwin,默认安装在c:\cygwin。默认什么都不要动就一直下一步即可。(最后python启动cygwin的安装程序setup.exe时会自动把这169个lib作为参数传递给程序,所以不需要进去后人工选择了。)

os.execv(“setup.exe”, list((“-L”, “-l”, os.getcwd(), “-P”, “,”.join(required_packages))))

安装cygwin完了以后,把webkit源码解压到cygwin的用户目录下,比如我的是:

C:\cygwin\home\kk\WebKit-r174650

下载WebKitSupportLibrary.zip复制到WebKit-r174650\,别解压:

http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html ~1M

安装DirectX和QuickTime

安装DirectX SDK:注意这里不同用最新版本的SDK,只能用这个版本的。

http://www.microsoft.com/en-us/download/details.aspx?id=6812 ~571M

安装QuickTime SDK(这个玩意儿官方不维护已然找不到了)

http://pan.baidu.com/s/1i304FQH ~2M

准备环境

在开始-附件-命令行提示符上右键,以管理员身份运行。 
进入命令行以后,执行VS安装目录下的设置环境命令:

“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat”

接着进入cygwin安装目录,进入cyg命令行:

cd c:\cygwin 
cygwin.bat

此时可以用export命令查看vs120comntools,vsinstalldir,lib,include等关键变量是否设置好。

进入WebKit-r174650\Tools\Scripts,执行

cd ~/WebKit-r174650\Tools\Scripts 
./update-webkit

如果出现“Couldn’t unzip WebKitAuxiliaryLibrary.zip.” 
打开文件update-webkit-dependency文件,去掉两个curl的–sslv3参数。再重新执行update-webkit。

提示缺少fonts请忽略。

执行编译

编译之前,先改一处源码:找到WebKit-r174650\Source\WebCore\platform\LocalizedStrings.cpp文件,去掉250行和252行的字符串内的双引号。

开始编译:在cygwin的命令行环境下WebKit-r174650\Tools\Scripts路径下执行如下命令:

./build-webkit –release

提示svn更新代码版本出错,请忽略。 
然后等待约1小时,即可。如果中间有问题,下次编译会继续上次的做增量编译。 
编译完成了以后,显示如下: 
build-webkit --release

如果我们要debug模式的dll和exe,可以–debug。

./build-webkit –debug

build-webkit --debug

可以看到debug版本编译花了52分钟31秒(debug项目比release多是因为有test项目)。

此时进入C:\cygwin\home\kk\WebKit-r174650\WebKitBuild\Release\bin32,所有编译好的文件都在这里。比如我们做webkit开发用到的webkit.dll组件。

双击WinLauncher.exe即可看到webkit运行的效果: 
win launcher for test webkit

总结

  • 最新版本的编译,严重依赖VS2013,网上没有任何一个教程可以直接用来按部就班编译最新的webkit,特别是多个vs的问题,这个我搞了几个小时才清楚,走了不少弯路。
  • 进入cygwin前,执行vcvars32.bat,把vc的环境变量都设置好,进入cygwin才能调用vs的ide、cl命令做编译。
  • 进入命令行前,使用管理员权限运行,避免编译过程有权限导致的问题。
  • 整个过程大概需要3.6G的下载量,so,需要好的网速。

参考

  1. http://blog.ashodnakashian.com/tag/webkit/
  2. http://www.webkit.org/building/checkout.html
  3. http://www.webkit.org/building/tools.html
  4. http://stackoverflow.com/questions/20914800/failed-to-build-webkit-r161259-on-win7-vs2010

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案           两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入...
1224 0
linux系统 网站木马后门Webshell查杀工具源码
后门这东西好让人头疼,第一文件太多了,不容易找,第二,难找,需要特征匹配啊。搞了一个python版查杀php webshell后门工具,大家可以增加后门的特征码,然后甩到后台给他查杀就可以了。
2931 0
在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件。原有是我在百度上搜索相关信息无果,遂干脆动手自己实现。 WPF控件的漂亮是Winform无法匹及的,本文主旨是在Winform工程中如何使用WPF控件。
967 0
一起谈.NET技术,VS2010 C++下编译调试MongoDB源码
  考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本:  boost版本1.42:  http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.zip/download         下载boost源码之后,我把boost解压在D盘。
978 0
编译libevent源代码(Windows)
学习笔记,只是记录本次成功用libevent源代码进行编译。环境为MinGW+VS2008+Msys。 0.下载libevent库   http://libevent.org/ 下载stable稳定版的库。
1116 0
Solrflux源码分析-Sql Support within Solr-类Sql的solr搜索实现(2)
Solrflux 开源code google 地址 http://code.google.com/p/solrflux/ 1.Solrflux 概述    Solrflux 主要工作是完成 Sql 语法到solr语法的转换,并执行查询,保存结果。    当前solrflux已经停止更新了,
1863 0
WPF一步步实现完全无边框自定义Window(附源码)
原文:WPF一步步实现完全无边框自定义Window(附源码)    在我们设计一个软件的时候,有很多时候我们需要按照美工的设计来重新设计整个版面,这当然包括主窗体,因为WPF为我们提供了强大的模板的特性,这就为我们自定义各种空间提供了可能性,这篇博客主要用来介绍如何自定义自己的Window,在介绍整个写作思路之前,我们来看看最终的效果。
1018 0
175
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载