Build WebKit On Windows 白果果白的专栏 博客频道 CSDN.NET

摘要:
f) 安装DirectXSDK下载2010年2月DirectXSDK。这是加速合成所必需的。3.获取源代码:a)下载导出的纯代码tarballhttp://nightly.webkit.org/第三个下载项目“源”。b) 下载修补程序包WebKitSupportLibrarys。此软件包包含Apple非开源库的几个Windows端口。除非您已经运行了build-webkit,否则此命令将首先自动运行update-webkit-support-libs。QTMovieWin。dll、WebKit。dll和JavaScript核心。不应复制dll,否则,需要重新编译。

Build WebKit On Windows - 白果果白的专栏 - 博客频道 - CSDN.NET


分类:
webkit

2012-03-02 15:32
186人阅读
评论(0)
收藏
举报

1、开发环境:

a)操作系统:Windows XP。

b)IDE:Microsoft Visual Studio 2005。

c) WebKit版本号:95481

2、安装开发工具:

说明:Quicktime SDK ,DirectX SDK,最好安装到C盘默认路径下。否则会因为自定义的路径没有添加到环境变量中而编译错误。

a) 安装Microsoft Visual Studio 2005。

b) 安装Microsoft Visual Studio 2005 Team Suite Service Pack 1

说明:如果vs2005安装的是中文版,该sp1也请选择简体中文版

c) 安装四个补丁:

一、KB918559

二、KB935225

三、KB943969

四、KB947315

说明:如果安装的IDE是中文版,这四个补丁中,不是每一个都有中文版,也就是CHS版,所以上面补丁也就三 和 四两个可以安装。如果是英文版的vs2005,上面4个补丁均需选择英文版的补丁安装。

d) 安装vs2005后,还需装个Cygwin(最好安装在C盘中),Webkit官网提供了一个cygwin-downloader.zip供下载,解压以后,文件夹里面有一个cygwin-downloader.exe,点击运行它会自动下载101个软件包;下载完成后,点击Cygwin的安装程序选择从本地文件夹安装,把刚才下载的101个软件都装上即可。

e) 最后,您还得去http://developer.apple.com/quicktime/download/下载一个quicktime sdk,需要注册才能下载,必须安装。

f) Install DirectX SDK

Downloadthe
February 2010 DirectX SDK
(newer versions do not support Visual Studio 2005). This is needed foraccelerated compositing.

3、获取源代码:

a)下载一个导出的纯代码的tarball就行了,在http://nightly.webkit.org/
第三个下载项 “Source”。20M左右。

b)下载一个补丁包,WebKit Support Libraries。这个压缩包包含了Apple的几个非开源库的Windowsport。下完后放在Webkit源码解压后的根目录:~/WebKit-r95481/(注意这个补丁包不要解压,build的时候脚本会自己搞定的)。

c)上面两个下载完之后,需要设置windows环境变量WEBKITLIBRARIESDIR和WEBKITOUTPUTDIR

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

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

比如将WEBKIT_DIR设置为E:\project\WebKit-r95481

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

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

d) 打开Cygwin,进入WebKit-r95481\Tools\Scripts文件夹运行三个脚本

(1)./update-webkit

(2)./ update-webkit-auxiliary-libs

(3)./ update-webkit-support-libs

其中(2)是下载安装WebKitAuxiliaryLibrary.zip,(3)是下载安装WebKitSupportLibrary,这个非常重要,如果不运行这个的话,是无法在VS中编译的。除非运行过build-webkit,而这个命令会首先自动运行update-webkit-support-libs。

4、设置编译选项:

a)用VS打开WebKit/WebKit/win/WebKit.vcproj/WebKit.sln,选择正确的Configuration,也就是Debug和Release,选择Debug即可。

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

c)右击WinLauncher,选择“设为启动项目”,然后F7,可以顺利编译完成。

5、调试和运行:

a)编译完成后是无法运行WinLauncher,会提示缺少很多dll而无法启动。要运行这个程序,需做两件事情。

b)下载并安装Safari。

c)将C:/Program Files/CommonFiles/Apple/Apple Application Support文件下面的所有的dll文件(除了QTMovieWin.dll,WebKit.dll和JavaScriptCore.dll)文件复制到可执行程序所在的目录,就可以运行WinLauncher了。QTMovieWin.dll,WebKit.dll和JavaScriptCore.dll这两个文件千万不要拷贝过来,否则,需要重新编译。

6、参考资料:

a) http://trac.webkit.org/wiki/BuildingOnWindows

b) http://www.webkit.org/building/tools.html

解决编译过程中可能出现的常见问题

1、问题描述:

Can't open perl script "/cygdrive/e/project//WebKit/JAVASC~1/docs/make-bytecode-docs.pl": No such file or directory

解决方法:

这是因为你的电脑上已经安装了perl,在系统的环境变量PATH中含有你安装的perl路径,可将该PATH中perl路径去除。或者将自己安装的perl卸载。

2、问题描述:

FunctionPrototype.obj : error LNK2019: 无法解析的外部符号_u_charType_46

Lexer.obj : error LNK2001: 无法解析的外部符号_u_charType_46

YarrJIT.obj : error LNK2001: 无法解析的外部符号_u_tolower_46

解决方法:运行./ update-webkit-auxiliary-libs下载辅助安装包WebKitAuxiliaryLibrary.zip

3、问题描述:

6>..\platform\DefaultLocalizationStrategy.cpp(345) :error C2001: 常量中有换行符

6>..\platform\DefaultLocalizationStrategy.cpp(347) :error C2001: 常量中有换行符

解决方法:

编码问题造成的。

将345行替换如下:

returnformatLocalizedString(WEB_UI_STRING("Look Up “%@”", "Look Upcontext menu item with selected word"), selectedCFString.get());

将347行替换如下:

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

4、问题描述:

vc++2005 error PRJ0002 的问题 错误的结果 1 (从“C:\WINDOWS\system32\cmd.exe”返回)解决方法:

这个是关联错误,是因为有些模块编译错误造成的。解决了模块的编译错误,这个关联错误也就消失了。

5、问题描述:

对VC 2005 error C2220:警告被视为错误-没有生成“object"

解决方法:

参考FIX:VC2005编译错 误:1error C2220: 警告被视为错误 - 没有生成“object”文件

选中解决方案,选择属性->配置属性 ->c/c++->常规->将警告视为错误,把 是 改成 否。

6、问题描述:

正在创建库WebCore.lib : fatal error LNK1106: 文件无效或磁盘已满: 无法查找到 0x51F6CD51

解决方法:

参考FIX:LNK1106:: 无法查找到 0x76364 无效或磁盘已满解决此问题, 添加 /IGNOREIDL 链接选项。

在VisualStudio.NETIDE, 设置此链接器选项请按照下列步骤操作:

a. 打开 属性页 对话框对于项目。

b. 展开 链接 文件夹。

c. 单击要查看嵌入的 IDL 属性页 嵌入的 IDL 。

d. 将 忽略嵌入的 IDL 属性设置 是 。

7. 问题描述:

\platform\graphics\ca\win\LegacyCACFLayerTreeHost.cpp(39): fatal error C1083: Cannot open include file: 'd3d9.h': No such file ordirectory

解决方法:

需要安装DXSDK_Feb10.exe

8. 问题描述:

crypt324>LINK :fatal error LNK1104: cannot open file 'crypt32.lib'

解决方法:

Early versions of VisualStudio 2005 are
missing the library'Crypt32.lib'
. A workaround is to downloadand install the

Windows Server 2003 R2Platform SDK
then copy the file'Crypt32.lib' from the directory C:\Program Files\Microsoft Platform SDK for WindowsServer 2003 R2\Lib to %VSINSTALLDIR%\VC\PlatformSDK\Lib.

9. 问题描述:

>'touch' 不是内部或外部命令,也不是可运行的程序

>NMAKE : fatal errorU1077: 'touch' : return code '0x1'

解决方法:

在vs2005->Tools->Options->Projects and Solutions->VC++Directories的Executable files中添加已经安装的cygwin的bin目录路径,比如路径为C:\cygwin\bin。

10. 问题描述:

fatal error C1083:Cannot open include file: 'stdint.h': No such file or directory

解决方法:

WebKitSupportLibrary.zip安装错误或者未安装导致这个错误。

检查WebKitSupportLibrary.zip是否放错目录了,应将其放置到webkit源码根目录下,然后运行脚本” ./ update-webkit-support-libs”。

11. 问题描述:

QTCFDictionary.cpp(30): fatal error C1083: Cannot open include file: 'CFData.h': No such file ordirectory

QTDecompressionSession.cpp(29): fatal error C1083: Cannot open include file: 'ImageCompression.h': No such fileor directory

QTMovie.cpp(31) : fatalerror C1083: Cannot open include file: 'FixMath.h': No such file or directory

QTMovieGWorld.cpp(30) :fatal error C1083: Cannot open include file: 'GXMath.h': No such file ordirectory

QTMovieTask.cpp(30) :fatal error C1083: Cannot open include file: 'Movies.h': No such file ordirectory

QTMovieVisualContext.cpp(30): fatal error C1083: Cannot open include file: 'CVBase.h': No such file ordirectory

QTPixelBuffer.cpp(29) :fatal error C1083: Cannot open include file: 'CFNumber.h': No such file ordirectory

QTTrack.cpp(29) : fatalerror C1083: Cannot open include file: 'Movies.h': No such file or directory

解决办法:

首先卸载Quicktime SDK 与 DirectX SDK,然后重新安装它们到C盘默认路径下。

不卸载的话,就要把原来的安装路径添加到环境变量中去。

12. 问题描述:

Cannot open include file:'WebKit2/WKHitTestResult.h': No such file or directory

解决办法:

可能跟代码有关,可以将WebKit2\WebKit2.h中的#include<WebKit2/WKHitTestResult.h>这一行注释掉。

13、开启WML (最新版本已经不再支持WML,开启也没用了)

解决方法:修改WebKit-r95481\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops文件,

在<VisualStudioPropertySheet>末尾添加

<UserMacro

Name="ENABLE_WML"

Value="ENABLE_WML"

PerformEnvironmentSet="true"

/>

在<Tool>标签的末尾添加;$(ENABLE_WML)

说明:

1. 开启其他宏,参照开启WML的格式。替换相应的宏名称即可。

2. 在webkit老版本中运行脚本./update-webkit即可下载WebKitAuxiliaryLibrary.zip。现在需要运行./ update-webkit-auxiliary-libs

免责声明:文章转载自《Build WebKit On Windows 白果果白的专栏 博客频道 CSDN.NET》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android—TableLayout自定义表格最大概率法分词及性能測试下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

h5固定表头公共样式

    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />    <meta content="yes" name="apple-mo...

Java虚拟机--JIT编译器

1.什么是JIT编译器 JIT编译器,即Just-In-Time Compiler(即时编译器)。JIT编译属于动态编译(即运行时编译)的一种,与之对应的是静态编译(AOT)。 2.为什么要用JIT编译器 我们都知道,通常通过javac将程序源代码编译(前端编译,与语言有关,机器无关)成字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解...

.NET系统框架

本书是一本讲解.NET技术的书籍,目标读者群也是在.NET框架(.NET Framework)下进行开发的程序员,因此我们无法回避的问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类个问题的第一反应可能是.NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。 要描述.NET框架,自然会遇到与其相关的...

C++单元测试工具之CPPUnit使用

CppUnit[1]是Micheal Feathers由JUnit移植过来的一个在GNU LGPL条约下的并在sourcefogre网站上开源的C++单元测试框架。(转自百度) 本文是对cppunit的一个初步体验,将分别在windows 7和ubuntu 12上进行尝试 文章本着极端细致的原则,力求让每个第一次接触的人都能按照教程完整实现,同时文章也贴出...

unity shader 变种(多重编译 multi_compile)

一、定义 在unity中我们可以通过使用#pragma multi_compile或#pragma shader_feature指令来为shader创建多个稍微有点区别的shader变体。这个Shader被称为宏着色器(mega shader)或者超着色器(uber shader)。实现原理:根据不同的情况,使用不同的预处理器指令,来多次编译Shader代...

测试覆盖率 Java 覆盖率 Jacoco 插桩的不同形式总结和踩坑记录

https://testerhome.com/topics/20632 关于Jacoco的小结和踩坑记录 一、概述 测试覆盖率,老生常谈的话题。因为我测试理论基础不是很好,就不提什么需求覆盖率啦这样那样的主题了,直奔主题,咱主要指Java后端的测试覆盖率。 由于历史原因,公司基本不做UT,所以对测试来说,咱最关心的还是手工执行、接口执行(人工Postman...