2

windows7下cygwin+vs2013编译webkit源码

 3 years ago
source link: https://blog.csdn.net/KimmKing/article/details/43910121
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

先下载源码和其他依赖,然后准备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,需要好的网速。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK