最新版的编译方法鲜有介绍,在网上搜了些编译方法,多数已经很老了,自己尝试了一些,不太可靠,多数问题还是需要自已琢磨
后续还会上传一些测试和使用方法,敬请关注
源码:
https://nightly.webkit.org/builds/trunk/src/1
版本问题:不建议用vs2012及以下版本了,源码太老,新的html5支持不敢保证
VS2013所支持的最高版本是WebKit-r174650 (2014年)
带sln工作区的源码,最后一个版本是r189384, 这些版本编译成功率高
之后版本均用CMake编译,且最低VS2015
关键点还是cygwin的安装:
由于科学上网的问题,WEBKIT官方的方法是利用脚本下载相应的包(下载也很耗时),然后本地安装,事实上还是少了一些包
新建一个文件夹,如:e:\CygwinDownloader
下载 http://cygwin.com/setup-x86.exe 放入目录内
新建文件: setup-for-webkit.bat, 内容如下:
cd /d %~dp0
setup-x86.exe -P bc,bison,curl,diffutils,e2fsprogs,emacs,flex,gcc-g++,gperf,keychain,lighttpd,make,nano,openssh,patch,perl,perl-libwin32,python,rebase,rsync,ruby,subversion,unzip,vim,zip
管理员运行 setup-for-webkit.bat, 则在安装时自动勾选相应的包
一切默认选项(从网络安装), 在选择服务器时,选择中国科技大:mirrors.ustc.edu.cn, 或添加163源http://mirrors.163.com/cygwin/
此时会边下载边安装,安装成功再说;
如少一些包,可以点击setup-x86.exe, 添加相应的包(利用搜索功能):
如 Can't locate Archive/Zip.pm
perl-Archive-Zip
以及其它包: perl-HTTP-date perl-HTTP*, perl-LWP*, openssl相关的包, 报什么错,就加什么包
r189384以上版本就不要安装cmake了, 下载CMake for windows最新版,并添加PATH https://cmake.org/download/
WebKit-r174650此版本参见下管文章,不出问题的话就可以成功
http://blog.csdn.net/kimmking/article/details/43910121
r174650及以下:
update-webkit-dependency, 去除--sslv3
找到WebKit-r174650\Source\WebCore\platform\LocalizedStrings.cpp文件,去掉250行和252行的字符串内的双引号。(把双引号(中文)改为\"
找到:Tools/WinLancher/stdafx.h, 在ExportMacros.h上面添加一行
#include <wtf/Platform.h>
#include <wtf/ExportMacros.h>
r189384:
报错:常量中有换行符,则找到相应的文件,改下格式(VS不支持UTF-8编码),如:
Tools\TestWebkitAPI\Tests\WTF\WTFString.cpp 保存为ANSI/unicode格式(用notpad++,有个转换选项)
Safari已经不再支持Windows了,因此Support Libraries 要安装 itunes,在官方下载最新版的(32位必须是32位系统才有链接,此时可以在度娘下载)
下载完后,无需安装,可以直接解压iTunes_12.5.4.42_Setup.exe, 找到AppleApplicationSupport.msi 并安装,此时会添加注册表项
此文主要针对最新版而言,当前最新版是 r209749 (2016-12), 也就是2017年了
新版或也有以上问题,请先检查并修改
找到问题根源后,事实编译起来还是很顺利的;
E:\webkit\WebKit-r209749\Source\WebCore\platform\LocalizedStrings.cpp(252): error C2001: 常量中有换行符
这个几乎是每个版本都有的,有熟悉SNV的可以向总部提交这个BUG, (修改引号内的引号,大概在250行):
return formatLocalizedString(WEB_UI_STRING("Look Up \"%@\"", "Look Up context menu item with selected word"), selectedCFString.get());
#else
return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>",
}
注意一定要安装CMake For Windows版(当前是3.71),并禁用cygwin的cmake(当前最新版为3.6,不满足要求, 可以临时改名, c:\cygwin\bin\cmake.exe)
安装后添加Path,比如我安装在D盘则设置环境变量PATH,添加: D:\Program Files (x86)\CMake\bin, 如果这个搞不定的话,那您就不是一个合格的程序员
环境变量其实不用设置, 在运行./update-webkit 是会自动添加(运行后,重新运行vcvarsall.bat,并进入cygwin)
cygwin 要安装libicu, icu-devel之类的(看编译出错提示,少什么包装什么包)
安装之前建议阅读完r174650版本的安装,以及之后版本遇到的所有问题,相信不是问题
DXSDK可以安装到D盘, QuickTimeSDK直接在官方下载,地址是Download - Apple Developer 安装在C盘
编译完后,提示: