Visual Studio 2008编译webkit

 

 

自己编译webkit,遇到了一些问题进行了总结,放到这里和大家分享一下:

1.编译前的准备工作一

DirectX SDK(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=10084) (这个文件少了 webcore会编译不通过),

VS需要做一下升级  安装 VS90SP1  以及补丁 KB945140,KB960075,KB957912,KB967631

下载google提供的 cygwin (webkit.org/repository/webkit/trunk/Tools/CygwinDownloader/cygwin-downloader.zip) cygwin中有100多个软件要让他全部下载完,不然后面的工作会出现问题,如果你的机器已经安装了perl等,可能会和它自带的冲突

Quicktime SDK(http://developer.apple.com/quicktime/download/)需要申请账号才能下载

下载并安装以上文件到c盘

下载源码---编译前的准备工作二

http://nightly.webkit.org/  放到C:\cygwin\home\ 下 在Cygwin中使用tar -xjvf WebKit-r112532.tar.bz2 ,然后重命名 WebKit

 

下载一些库---编译前准备工作三

下载

WebKitSupportLibrary和WebKitAuxiliary:http://developer.apple.com/opensource/

将上面文件(下载后不用解压)放到 C:\cygwin\home\WebKit 下,因为我的cygwin是建立在c盘下的

 

2.设置环境变量 ---编译

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

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

例如:

PATH c:\cygwin\bin
WEBKIT_DIR C:\cygwin\home\WebKit (我的WebKit 放在了home目录下)
WEBKITLIBRARIESDIR %WEBKIT_DIR%\WebKitLibraries\win
WEBKITOUTPUTDIR %WEBKIT_DIR%\WebKitBuild

 

运行脚本---编译

打开cygwin  在 WebKit/webkit/Tools/Scripts/下执行脚本

perl  update-webkit

perl build-webkit    运行时出现 如下问题 

*************************************************************
Cannot find '/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/VCExpress.exe'
Please execute the file 'vcvars32.bat' from
'C:\Program Files\Microsoft Visual Studio 8\VC\bin\'
to setup the necessary environment variables.
*************************************************************
Died at /home/WebKit/Tools/Scripts/webkitdirs.pm line 1551.

不用关心 ,不影响正常编译

 

编译过程-编译

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

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

c)  设置警告级别,不输出报警

d)      右击WinLauncher,选择“设为启动项目”,然后F7,开始编译。

 

编译后会出现如下错误

error C2001: 常量中有换行符
 error C2001: 常量中有换行符
 fatal error C1057: 宏展开中遇到意外的文件结束

 

到相应的行 删除全角符号 "" 即可

之前

RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    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>", truncatedStringForLookupMenuItem(selectedString));

之后改为

RetainPtr<CFStringRef> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    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>", truncatedStringForLookupMenuItem(selectedString));

然后全部清除,重新编译 即可顺利通过

下载安装 safari

编译完成后,需要将C:\Program Files\Common Files\Apple\Apple Application Support下的一些库文件拷贝到C:\cygwin\home\WebKit\WebKitBuild\Debug\bin目录.  

运行MiniBrowser.exe

 

 

运行WinLauncher.exe

 

 

试试吧 

 

 

 

 

posted on 2012-04-03 20:35  OpenSolaris  阅读(1389)  评论(6编辑  收藏  举报