在Windows平台上编译了一周webkit,终于成功了。下面根据自己经验,分享给大家,希望能帮助到大家。
1. 第一步无可厚非就是安装cygwin,之前在webkit官网上下载的cygwin怎么也编不过,后来去百度查一些webkit编译经验文档,找到一个cygwin的绿色免安装版,是他们之前尝试过的。之前我的webkit编译不过,很大关系是自己下载的cygwin某些库有问题,所以直接用了绿色免安装版。我已经将cygwin绿色免安装版上传在:\\10.120.99.100\f1\zhongzw\软件安装包\cygwin.7z。直接解压缩到C盘即可。然后在桌面创建一个快捷方式,输入:“C:\cygwin\bin\mintty.exe-i /Cygwin-Terminal.ico -”即可,你可以点击属性-快捷方式-更改图标。这里请勿忘记添加C:\cygwin\bin到环境变量中。
2. 安装其他依赖的工具:
Safari浏览器、QuickTime、Direct SDK、svn客户端、python客户端,所有安装包都在:\\10.120.99.100\f1\zhongzw\软件安装包
(注:这些软件全部默认安装, 安装svn的时候注意要选中commonline client tool的那个选项,在安装Direct SDK的时候报错也没关系,不用重新安装)
3. 安装vs2013
安装包自己解决
注意:安装必须是默认选项,不要有任何更改!!
右键点击C:\ Program Files (x86)\MicrosoftVisual Studio 12.0\Common7\IDE\devenv.exe,选择“属性”—“兼容性”—“特权等级”—“以管理员身份运行”
左上角注意
4. 下载webkit代码:
代码在:\\10.120.99.100\f1\zhongzw\软件安装包\webkit-2.6.0.tar.gz ;拷贝到本地任意路径即可。
5. 添加相关环境变量:
WEBKIT_HOME:webkit源码路径
WEBKIT_LIBRARIES=%WEBKIT_HOME%\WebKitLibraries\win
WEBKIT_OUTPUTDIR=%WEBKIT_HOME%\WebKitBuild
WEBKITLIBRARIESDIR=%WEBKIT_HOME%\WebKitLibraries\win
WEBKITOUTPUTDIR=%WEBKIT_HOME%\WebKitBuild
将C:\Program Files (x86)\Microsoft VisualStudio 12.0\VC\bin添加到环境变量中
将C:\Program Files (x86)\CommonFiles\Apple\Apple Application Support添加到环境变量中
将python的路径添加到环境变量中
6. 更新webkit依赖库
首先先将WebKitSupportLibrary.zip(\\10.120.99.100\f1\zhongzw\软件安装包)放到webkit源码目录下
然后以“管理员身份”打开cygwin客户端,cd到webkit根目录下
1)打开文件/Tools/Scripts /update-webkit-dependency文件,去掉三个curl的–sslv3参数
2)刚安装cygwin都会遇到这个Can'tlocate HTTP/Date.pm in @INC问题
解决办法:
输入命令:cpan HTTP::Date
3)cygwin下出现乱码字体可在\\10.120.99.100\f1\zhongzw\软件安装包\MathML-fonts.msi安装即可
4)执行./Tools/Scripts/update-webkit(要成功才可执行下一步)
此为成功!!!
执行./Tools/Scripts/update-webkit-support-libs
此为成功!!!
7. 编译webkit代码:
打开Source/WebKit/WebKit.vcxproj/WebKit.sln
将WinLauncher设置为启动项目
先在webkit上层目录输入svn upgrade ‘webkit目录名’以防止编译报SVN错误
这里,webkit官方的LocalizedStrings.cpp文件出现出现字符错误,需要将251行的%@和253行的<selection>的双引号去掉
修改之后即为以下代码:
按F5执行,第一次编译会编译半天,祝你好运!!
8. 运行:
运行的时候回报找不到DLL的错误,只需将C:\Program Files (x86)\Common Files\Apple\Apple Application Support下除了WebKit.dll、JavaScriptCore.dll、QTMovieWin.dll以外所有DLL文件拷贝到可执行文件同一目录下即可
另外以上软件不想去网上下载的可以邮箱给我,我打包发给你们!!!