一、准备工具,下载好官方要求的工具http://www.webkit.org/building/tools.html,下载好源代码:http://nightly.webkit.org/builds/trunk/src/1,路径最好就是默认,避免不必要的麻烦
a) 安装vs2015。当然,官方说的默认安装是不正确的。默认安装会再编译时提示找不到”CL.EXE”,我们安装默认以后,还要安装C++相关的东西,我记得是还有两个,不过没有截图,如果你不想麻烦的话,全部和C++相关的都安装。
b) Cygwin
我用的是WebKit-r189384\Tools\CygwinDownloader文件夹下面的python脚本。在运行之前确保两件事
1、安装python2.7
2、安装python2.7完毕后,编辑文件cygwin-downloader.py
找到42左右的这行代码,修改为:
package_mirror_url = "http://mirrors.163.com/cygwin/"
也就是,采取指定的163源,不再是随机源。
做好这两件事以后
就可以运行该脚本了,如果安装了python的话,你可以直接双击运行。如果能直接运行的话就用管理员权限运行cmd,然后进入目录
1)Cd E:\WebKit-r189384\Tools\CygwinDownloader
2)python cygwin-downloader.py
等待下载163个包(如果这里你不是163,那么,很可能就是官方的webkit脚本已经修改,此教程有些地方很可能已经不适用了),这里官方网站给了我很大的误导,首先是直接下载安装包
cygwin-downloader.zip 2,932KB
说直接解压,然后等待下载运行就能获取到全部的功能库,但是据我所知,至少有几个是没有包含进来的,curl没有就是其中一个坑。
下载完毕以后不用急着去运行安装
首先看一下setup.ini文件大小,我的为6,532KB(如果你做的时候,大小不一样,那么里面的安装模块很可能就不一样的了,此教程只能用于参考了)
启动setup.exe 的本地安装,如果no packet的类似信息
打开文件夹x86/看里面是否存在setup.ini,如果不存在则复制外面的进去,再重新启动
安装完毕以后,我们继续补充官方网站没有下载的包,install from internet,选择163源
1)curl :键入再Search输入框curl 然后把里面全部安装了(反正我不知道,也不想看,所以偷懒啦,163源速度快,很快就装好)
2)LWP:Search搜索,同上,全装
3)Rubygems:Search搜索,同上,全装。
4)Ruby-webkit:这个要看是否已经装了,如果安装了就不用再装
5)python-webkit:安装这个的原因是,有时候python脚本貌似有问题。具体什么问题我也不知道,反正包那么小,就装了呗
安装完cygwin以后,就按照官网的一步步走下来吧包括rebaseall。
安装QuickTime SDK(根据官网)
安装DirectX SDK(根据官网)
二、安装编译
编译前准备工作:
a. 下载WebKitSupportLibrary.zip(920KB)放到webkit目录下
b. 打开WebCore\platform\LocalizedString.cpp,在264行和266行中有"Look Up “%@”"和"Look Up “<selection>”"注意%@和<selection>两边的双引号是全角的,然后删除这些全角的引号即可。
c. WebKit\Tools\TestWebKitAPI\Tests\WTF\WTFString.cpp 右键用记事本编辑,另存为Unicode编码(本来是utf-8),因为这里有中文,会引起常量存在换行符的问题
d. 删除不必要的*.cmd脚本文件大小为0的,在webkit目录下搜索 *.cmd 大小:空 然后把搜索出来的全部删除
关于update-webkit的错误
a. 错误:Can't locate HTTP/Date.pm in @INC
解决方法:类似的就用相同的方法cpan XXX::XXX 大小写一致如:cpan HTTP::Date,然后等待下载成功,第一次cpan的时候会有一些设置,直接enter默认就可以了
b. Could not access https://developer.apple.com/opensource/internet/WebKitAuxiliaryLibrary.zip
WebKitAuxiliaryLibrary.zip下载失败,类似这样的意思,什么无法访问的意思。
解决方法:这个是因为脚本解析错误造成的,用cygwin 安装 LWP全部。
c.错误:缺少Archive::Zip,则使用以下命令安装,需要代理。
root# cpan
cpan> install Archive::Zip
cpan> quit
root#
这个时候就可以运行build-webkit 脚本了。
a. error 1: <internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb
解决方法:cygwin 安装Rubygem ,用setup.exe搜索就可以了。
b. CL.exe的问题:安装好VS里面C++相关的项,我那时候是默认安装后编译一次发现问题后,打开WebKit\Source\WebKit\WebKit.vcxproj\WebKit.sln 然后VS提示要安装,所以点安装解决问题了。
三、问题总结
a) failed to determine path to aas directory
b) Curl未找到命令:cygwin 安装curl相关模块。
参考文档
VS2015 Webkit http://www.voidcn.com/article/p-feinilyw-ks.html
http://www.voidcn.com/article/p-wortiyav-dz.html
http://www.voidcn.com/article/p-wosqttvb-pb.html