Windows7下VS2015编译WebKit(WebKit-r189384)

xingyun86 2018-7-8 1815

一、准备工具,下载好官方要求的工具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


×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回