分享
 
 
 

WebKit 在Windows 平台下编译小结

王朝学院·作者佚名  2009-12-20
窄屏简体版  字體: |||超大  

WebKit 是世界公认的优秀的开源浏览器内核。具有渲染速度快,灵活可定制,多平台支持等优点。国内知名的Maxthon 和 UCWeb 都将WebKit选作浏览器内核。谷歌公司和苹果公司也分别在WebKit 基础上只做了Chrome 浏览器和Safari 浏览器。

虽然WebKit 已经越来越多的被广大程序员接受,但其编译过程却非常之痛苦。下面将我编译WebKit 代码的经验与大家分享。

1) 获取WebKit 源代码

WebKit 源代码是使用Subversion 工具做管理的。因此,只要具备Subversion 客户端就可以从http://svn.webkit.org/repository/webkit/trunk 获取源代码。但是,这并不是最好的方式。在实际编译过程中通过svn拿下来的代码有可能为你带来许多的烦恼。因此,我推荐从WebKit的Nightly build 直接下载WebKit 源代码压缩包。具体地址是:http://nightly.webkit.org/builds/trunk/src/1 像WebKit 这么大的项目仍然遵循Daily Build 的原则,真是挺了不起的。

WebKit 源代码在本文写作时,版本是r52221 但我最近两天都没有将该版本的WebKit编译成功。原因是,使用Visual Studio 2005 打开项目几分钟后,Visual Studio 2005 会停止响应。我测试过r50006版,也就是5字头的第一版,就没有这个问题。版本号越大说明源代码越新,反之就越古老。

2) WebKit 编译环境的搭建

WebKit 网站有一篇文章说明了一下WebKit 在Windows 平台下的环境搭建:http://webkit.org/building/tools.html 但这篇文章写得也太过简单了。这也是WebKit 最最蹂躏人的地方。我在历经十数次失败之后,终于找到了通往目标的捷径。

硬件方面

内存最好找一台内存大于2G的计算机。 因为WebKit 项目太过庞大了,会生成数以百计的.obj 文件。在执行链接操作时,内存会需要大概1.6G内存。如果你机器安装的又是Vista 之类的吃内存操作系统,那就等着看link.exe 告诉你"Out of memory"吧。 我安装了Vista的机器的内存只有区区2G,链接了数次都没有成功,最后逼得我在安全模式下(连网卡驱动都没敢加载)编译,终于在内存峰值到达1.99G 时涉险过关,真是太刺激了,太刺激了。

硬盘当然是越大越好,因为WebKit 源代码展开后需要占用160M-190M磁盘空间,编译过程产生的中间文件需要大约4G的存储空间。外加上Cygwin Visual Studio 等占据的磁盘空间,这些还是挺大的。 最最重要的是系统盘最好预留出4G左右的空间。

其实使用多核的CPU对编译WebKit 也是有好处的,编译脚本可以同时并行的调用cl.exe 编译WebKit,大大缩短了编译时间。

软件方面

首先你需要安装Visual Studio 2005 SP1 如果是Vista 或者Window 7 需要安装 SP1 update for vista。 Visual C++ 2005 Express 也是可以编译WebKit的,但是需要单独安装 Platform SDK。 实践证明WebKit 在Platform 5.0 6.0 上都可以编译通过。

这里也会引申出一个问题,如果你的机器上已经安装了Visual Studio 2008 怎么办? 别担心,Visual Studio 2005 和Visual Studio 2008 是可以共存的,并且Visual Studio 2005 可以在Viusal Studio 2008 之后安装。但是,需要注意的是,当Visual Studio 2005 在Visual Studio 2008 之后安装后,WebKit 的perl脚本只会到 “系统盘\Program Files\Microsoft Visual Studio\” 下面去找VC 的bin文件夹(也就是cl.exe 所在文件夹)。如果你安装的VS 2005 不在系统盘,需要将VC的bin文件夹拷贝到系统盘的那个目录中去。

在安装完Visual Studio 2005 之后,需要安装另一个大块头Cygwin。Cygwin实际上是在Windows 上模拟了一个Unix 环境。 安装Cygwin最好不要直接使用Cygwin网站上给出的setup.exe 文件。而是使用WebKit.org网站上给出的cygwin-downloader 工具。 cygwin-downloader 会下载编译WebKit 所需的101 个工具(现在可能又多了几个),诸如perl、zlib、bash 等等。待下载完成后,再运行Cygwin的安装工具 Setup.exe 选择从本地目录安装。请注意!Cygwin 要安装到系统盘分区下,如C盘是系统盘,那么Cygwin就必须安装在C:\cygwin 下。安装完成后,大约会占据几百兆的空间。

下一步,仍需要安装的是QuickTime SDK。 据有人说可以不安装这个QuickTime SDK,但我发现如果不安装的话WebKit 解决方案中的QTMovie 项目一定是无法编译成功的。 QuickTime 一定要安装在 系统盘:\Program Files\QucikTime SDK\ 下面,千万别改动安装路径。

最后,在解压缩WebKit 源代码文件之后,还需要到webKit.org 站点下载 WebKitSupportLibrary.zip 文件,这个文件是一些第三方库在Windows 平台上预先编译好的版本。供WebKit 链接时使用。下载后,zip文件无需解压缩,直接放在WebKit的根目录下即可。

编译步骤

1) 设定环境变量。将WEBKITLIBRARIESDIR设定为 WebKit 源代码目录\WebKitLibraries\win 路径; 将WEBKITOUTPUTDIR 设为你打算要存放obj和dll 的输出文件夹,当然这个文件夹所在的分区至少要有4G的剩余空间。

2) 执行更新脚本。 请在桌面上运行cygwin 的命令行窗口,然后通过CD 命令(和DOS的CD命令一样) 跳转至WebKit 源代码目录\WebKitTools\Scripts 文件夹下。比如,我的WebKit 源代码放在F盘,就是 cd F:/WebKit/WebKitTools/Scripts/ 运行该目录下的 Update-WebKit 和 Update-WebKit-Support-libs 两个脚本。 很多博客上都没有提到这个步骤,实际上这个步骤是能否成功编译的关键。

3) 成功执行完上面两步后,就可以使用Visual Studio 2005 打开位于 WebKit 源代码目录\WebKit\win\WebKit.vcproj\ 目录下的 WebKit.sln 解决方案了。这个sln默认带有六个编译配置 Debug、Debug_all、Debug_Cairo、Release、Debug_Internal、Release_Cairo。用Release 编译出来的就是用苹果自己的渲染引擎的版本,和Safari 的一致。 用Release_Cairo 编译出来的是支持Cairo渲染引擎的版本,这个版本可以脱离苹果的环境单独跑,但同时也无法放到苹果的Safari 环境中运行。要想监测编译是否成功,可使用WinLauncher.exe 这个应用程序加载WebKit 进行测试。

先写到这里,以后想起什么来再补充吧。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有