webkit编译

再谈编译WebKit 本文聊一聊如何编译WebKit,并调试 WebKit 的 WebContent 进程,以解决WKWebView的疑难问题。作者编译WebKit,并写文章记录。但当时是跟着网上的几篇文章按部就班地执行,对每一步都比较懵懂;能跑起来实属运气,如果中途发生问题,那就不知如何解决了。现在再次尝试构建WebKit工程,跟着以前的步骤竟无法完成,还是因为当时知其然不知其所以然。因此,本文尝试再对编译WebKit的过程做一次梳理,并把每一步的问题尽量分析。 阅读详情

编译webKit

Webkit已然成为当前最炙手可热的开源浏览器内核,从手机到电脑很常见的浏览器都是基于webkit内核的,研究webkeit对于一个程序员来说是件很让人振奋的事儿,然后要研究这个开源的瑰宝,首先就需要编译它,经过将近一个星期的研究,历经我也不知道有多少次的失败终于终于我还是编译成功了。下面我将我这次的编译的详细过程记录下来,在我看来是对网上的早期编译文档的一次版本更新吧

编译环境的搭建

建议搭建基本环境到webkit官网浏览英文介绍http://www.webkit.org/building/tools.html以及下载编译所需要的所有文件,我在我机器上的测试环境为:

Window7 32位旗舰版操作系统,4G内存(编译最大达到内存占用2.5G),处理器Inter(R)Core(TM) i3 CPU M370 @2.4GHz,编译版本为:WebKit-r132317,下面是环境搭建详细,建议安装全部选中默认路径以免编译错误。

1.      安装VS 2005 team suite 英文试用版下载地址如下:

http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img;

2.      安装Microsoft Visual Studio 2005 Team SuiteService Pack 1,下载地址如下:

http://www.microsoft.com/downloads/en/details.aspx?familyid=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc&displaylang=en

3.    如果是win7的系统需要安装VisualStudio 2005 Service Pack 1 ATL Security Update

4.      安装一下的四个补丁:

a)     KB918559

b)    KB935225

c)     KB943969

d)    KB947315

5.      安装cygwin 利用官网专门提供的一个下载工具cygwin-downloader.zip.运行cygwin-downloader.exe会自动下载并在压缩包中生成一个release文件夹,下载完成后会自动启动安装程序setup.exe执行安装,然后选择本地文件也就是release文件夹,建议安装到C:\cygwin避免编译产生无可预知错误,选择文件夹的时候默认为全部default我建议更改为install

6.      http://developer.apple.com/quicktime/download/下载一个quicktime sdk,需要注册才能下载,必须安装。

7.      安装DirectX SDK下载February 2010DirectX SDK(新版本不支持vs2005)

8.      (可选安装,为了避免错误我安装了)安装windows调试工具,有些测试工程和脚本需要这些工具根据这个介绍安装instructions for installing the 32-bit version ofDebugging Tools for Windows.

获取源码

1.       对于源码的获取可以直接下载在http://nightly.webkit.org/  第三个下载项“Source”。20M左右。

2.       下载一个补丁包,WebKitSupport Libraries这个压缩包包含了Apple的几个非开源库的Windows port。下完后放在Webkit源码解压后的根目录:~/WebKit-r132317/(注意这个补丁包不要解压)

设置环境变量

1.       设置cygwin的环境变量,在path中添加C:\cygwin\bin;

2.       新建环境变量WEBKITLIBRARIESDIR其值为WebKit 源代码目录\WebKitLibraries\win

3.       新建环境变量WEBKITOUTPUTDIR其值设为你打算要存放objdll 的输出文件夹,当然这个文件夹所在的分区至少要有4G的剩余空间。

4.       说明:WEBKITOUTPUTDIR可以随便设,如果要保持和其他Build方式的一致性,那么就设置成为%WEBKIT_DIR%\output,这里%WEBKIT_DIR%Webkit文件夹的绝对路径。WEBKITLIBRARIESDIR必须设置为%WEBKIT_DIR%\Web`KitLibraries\win文件夹。

比如将WEBKIT_DIR设置为E:\project\WebKi t-r132317

WEBKITOUTPUTDIR则可以设置为%WEBKIT_DIR%\output

WEBKITLIBRARIESDIR则可以设置为%WEBKIT_DIR%\WebKitLibraries\win

运行cygwin(我源码在D,WEBKITOUTPUTDIR为源码内新建的ouput文件夹)

1.       执行以下命令

      export WEBKITLIBRARIESDIR=D:\\WebKit-r131283\\WebKitLibraries\\win

      export WEBKITOUTPUTDIR=D:\\WebKit-r131283\\output

2.       转到webkit源码的\Tools\Scripts目录(例如我的:cd D:/WebKit-r132317/Tools/Scripts

执行./update-webkit 此命令会下载WebKitAuxiliaryLibrary.zip,并安装,执行成功

失败则表示cygwin安装有问题!

3.       然后在执行./update-webkit-support-libs命令安装一个文件包也会提示成功。(此步比较重要,不执行会出现很多错误,网上很多文档都没有写)

开始编译

1.     启动vs2005 打开

D:\WebKit-r132317\Source\WebKit\win\WebKit.vcproj\WebKit.sln工程

2.     选择编译模式单纯的DebugRelease,这里我选择Debug

3.     选择DumpRenderTree,QTMovieWin, WebCore, WebKit, WinLauncher等所有项目(把c++项目的属性都设置一遍)的项目属性,左侧选择“C/C++”,将右侧的“Treat Warnings As Errors(“将警告视为错误”)设置为“No”。这个必须设置。否则编译时会报错

4.     WebKit-r132317默认的项目启动项为JavaScriptCore文件夹下的jsc工程,这回导致每次编译到此停止不前,所以又右键单击Tools文件夹下的MiniBrowserLauncher工程,选择Set as StartUp Project设为项目启动项

5.     好了,如果按照以上配置到这步就可以编译,按下F7或者点击编译图标开始编译。

6.     我的机器上经过大约一个小时的编译,出现一个错误:fatal error C1057: unexpected end of file in macro expansion原因是编码的问题,修改错误代码如下:

#if USE(CF)

    RetainPtr<CFStringRef>selectedCFString(AdoptCF,truncatedStringForLookupMenuItem(selectedString).createCFString());

 

   returnformatLocalizedString(WEB_UI_STRING("Look Up Dictionary", "LookUp context menu item with selected word"), selectedCFString.get());

 

#else

    returnWEB_UI_STRING("Look Up “<selection>”", "Look Up contextmenu item with selected word").replace("<selection>",truncatedStringForLookupMenuItem(selectedString));

 

#endif

#endif

7.     修改后再次编译,如果一切顺利的话最终会打开一个程序MiniBrowser.exe 但是无法正常运行,因为还缺少很多的dll文件,这时候需要下载Safari浏览器并安装了,然后复制其安装目录C:/Program Files/CommonFiles/Apple/Apple Application Support下的所有dll文件到编译目录D:\WebKit-r132317\output\Debug\bin下,注意:最好不要覆盖掉QTMovieWin.dllWebKit.dllJavaScriptCore.dll 这三个dll文件,然后再次编译,如果一切配置正确则编译成功运行MiniBrowser.exe 默认打开网页为webkit官网页面,输入www.baidu.com可以执行

至于调试,我也不会后续会了再发文章了。

 

可能会出现的问题

错误:fatalerror C1083: Cannot open include file: 'stdint.h': No such file or directory

解决:执行./update-webkit-support-libs命令

错误:NMAKE :fatal error U1077: 'touch' : return code '0x1'

解决:cygwin安装目录没有配置环境变量

错误:..\wtf\dtoa.cpp(1100): error C2220: warning treated as error - no 'object' file generated

解决:修改对应的dtoa.cpp文件属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”

错误:errorPRJ0002 : Error result 1 returned from 'C:\Windows\system32\cmd.exe'.

解决:此错误是由于依赖模块间错误造成,个模块没有错误了,此错误便消失

错误:在cygwin中执行build-webkit报错:-bash:webkit/Tools/Scripts/build-webkit: /usr/bin/perl: bad interpreter: Permissiondenied

解决:安装cygwin问题,没有安装perl包,建议使用cygwin提供的下载器下载安装时选择perlinstall

总结:下载的源码是肯定没有代码本身上的错误,唯一的也是编码造成的一个很明显的error C2220: warning treated as error - no 'object' file generated错误,相信其他的错误都是由于配置不当造成的,所以搭建编译环境时最好全部选择默认路径安装不要更改,虽然我也不喜欢把软件安装在C盘,但是没有办法,所以C盘空间要足够,今天才编译成功,接下来就是调试学习了,往此文档能早日助你完成编译!

 

时间20121030

深入理解webkit内核系列第一篇:如何快速编译 最近发现询问webkit如何编译的人很多,为了方便大家写一篇关于如何在linux下面编译webkit的文章,方便大家来学习讨论。我们知道webkit是一个跨平台的浏览器能够在苹果,windows,linux等平台运行。个人对linux平台稍微熟悉些,本文主要介绍在linux平台下如何编译成功webkit。 一:环境准备 (1). 直接安装ubuntu 12.04 系统,目前ubuntu 13 阅读详情

相关推荐

webkit在linux平台下的编译

编译webkit ######################################################################################################### by zevolo webkit编译需要很多依赖的库文件,有的可能已经系统安装,如果没有,就需要安装或者自己编译库文件来链接。安装比较方便,但是有时候可能不符合

zevolo的专栏 7609

Webkit编译详解

Webkit编译详解 WebKit分析,体系介绍

WebKit 内核编译

WebKit内核编译实在是一项折磨人的事情,虽然webkit.org官方有一个文档,但是有时候机器本身配置环境还是和教程有差别。 经过三天三夜平均每天2点钟的奋斗,今天终于搞定了。 其实,官方的描述已经非常到位,只要保证每一步都执行了,差别应该不大,需要多加处理的就是本机实际环境导致的具体问题。 首先按照官方文档进行操作 http://www.webkit.org/buil

elfylin的专栏 1万+

webkit浏览器内核编译

WebKit是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用),Trident(也称MSHTML,IE 使用)和EdgeHTML(也称Chakra,Edge和其他UWP浏览器使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。

辞槿的博客 1909

深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析

????????关注后回复“进群”,拉你进程序员交流群????????作者丨童红明来源丨百度App技术前言移动互联网时代,网页依旧是内容展示的重要媒介,这离不开 WebKit 浏览内核...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 986

WebKit编译小结

WebKit编译小结在Windows平台上利用微软的VS编译WebKit,然后在VS IDE里设置断点跟踪WebKit的运行,是一件很好玩的事情。到目前为止,我们至少可以通过两个开源项目来做这件事情:Apple的WebKit开源项目(http://webkit.org)和Google的Chromium开源项目(http://code.google.com/chromium)。前者我一共编译过3次,每次都要磕磕绊绊,相比而言后者的编译过程要顺利得多。所以针对Safari的WebKit自己写个小结,希望下次再编

王卫Oneway的专栏 2万+

Windows下webkit编译

1.1        Windows下webkit编译[1] 建议硬件配置:3G以上内存, CPU 2.4GHz以上 1.      安装VS 2005 team suite, 强烈建议使用英文版, 中文版有2个package安装不上。 英文试用版下载地址: htt

jlusomeday1979的专栏 1409

linux编译webkit

http://trac.webkit.org/wiki/BuildingQtOnLinux http://trac.webkit.org/wiki/QtWebKitContrib  Build Using Qt 1.先安装一些编译需要的软件和库 sudo apt-get install libqt4-dev libxslt-dev gperf bison libsqlite3-de

LQ0622的资料库 1656

webkit在win32下的编译规则

最近有人在windows 7下的webkit编译不过去,问我该怎么解决。我看了一下,主要是SVGAnimationElement.cpp等文件编译不过去,这里面使用了开启svg后的一些枚举变量,但webkit编译时生成的WebKitBuild/include/WebCore/CSSPropertyNames.h文件里面并没有生成这些枚举变量,我检查一些编译选项,配置都是OK的,我又看了一下webkit编译规则,发现CSSPropertyNames.h的生成是依赖CSSPropertyNames.in等文

xu的blog 1万+

WebKit windows 平台编译

系统环境:windows xp sp3 编译环境:VS 2005 sp2 所需Sdk: DXSDK_Feb10.exe , QuickTime sdk,vs 2005补丁 遵照 http://www.webkit.org/ 里安装所需环境 1、我电脑安装过VS 200

油漆工的专栏 3725

webkit在vs2008中编译

webkit的官方网站写的webkit需要在vs2005的环境下编译,而我的机器只装了vs2008,我可不想在装一个vs2005.所以我就打算在vs2008里面试试编webkit,最终的结果是可以编译出来,但是运行不起来。步骤如下:1. 下载webkit代码。webkit使用svn下载后差不多有1G多,这里面的大部分代码是测试代码,由于网速慢加上现在不需要这些测试代码,我下载的是Night

xu的blog 1万+

android ndk编译自己的webkit

android本来自带了webkit浏览器,但是要对其进行custom就需要android源代码才行, 但是在没有源码的情况下,那么就需要用到ndk了,比如,我是在xoom上做custom webkit的。 虽然ndk提供的库很少,而且没有skia,但是好在有bitmap,这样显示慢了点,没有硬加速,但不是不可能。 webkit需要的第三方库,freetype,png,jpeg,sqlite

armite的专栏 8356

linux+qt的webkit编译

为了对webkit有比较具体的感观,决定对其进行编译。我们项目组做的是嵌入式浏览器,所以选择最贴近的linux+qt的webkit编译。找了一些资料,主要来源以下:http://trac.webkit.org/wiki/BuildingQtOnLinuxhttp://mondaybynoon.com/2007/04/23/installing-and-running-webkit-in-linux-using-qt/http://www.linuxdiyf.com/bbs/thread-74678-1-1.

blue_pine的专栏 3128

编译WebKit

要想了解WebKit,首先需要找到它的源代码。这个比较简单,因为我们可以通过http://www.webkit.org/找到每天的WebKit的版本,当然你也可以通过SVN checkout自己想要的版本,可以保证的是这些版本99%都能编译通过,除了个别的commit会有例外,比

高雄的专栏 1422

WebKit 在 Windows 平台下编译小结

 WebKit 是世界公认的优秀的开源浏览器内核。具有渲染速度快,灵活可定制,多平台支持等优点。国内知名的Maxthon 和 UCWeb 都将WebKit选作浏览器内核。谷歌公司和苹果公司也分别在WebKit 基础上只做了Chrome 浏览器和Safari 浏览器。       虽然WebKit 已经越来越多的被广大程序员接受,但其编译过程却非常之痛苦。下面将我编译WebK

Edai9508的专栏 859

webkit 编译 linux,Ubuntu下编译GTK版WebKit

1)系统Linux Ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/LinuxGet dependenciesWebKit requires a newer version of libsoup than provided by the official Ubunt...

weixin_42538645的博客 353

webkit真正可以编译的过程

1、工具的安装 编译webKit Webkit已然成为当前最炙手可热的开源浏览器内核,从手机到电脑很常见的浏览器都是基于webkit内核的,研究webkit对于一个程序员来说是件很让人振奋的事儿,然后要研究这个开源的瑰宝,首先就需要编译它,经过将近一个星期的研究,历经我也不知道有多少次的失败终于终于我还是编译成功了。下面我将我这次的编译的详细过程记录下来,在我看来是对网上的早期编译文档的一次版

tuad999的专栏 1365

webkit windows编译经验分享

在Windows平台上编译了一周webkit,终于成功了。下面根据自己经验,分享给大家,希望能帮助到大家。   1.      第一步无可厚非就是安装cygwin,之前在webkit官网上下载的cygwin怎么也编不过,后来去百度查一些webkit编译经验文档,找到一个cygwin的绿色免安装版,是他们之前尝试过的。之前我的webkit编译不过,很大关系是自己下载的cygwin某些库有问题,所

m632587166的专栏 1478
上一篇: UpdateData(TRUE)和UpdateData(FALSE)的区别
下一篇: C#委托之个人理解(转)
dangercheng
博客等级 码龄15年 44粉丝 32原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值