1.1 Windows下webkit的编译[1]
建议硬件配置:3G以上内存, CPU 2.4GHz以上
1. 安装VS 2005 team suite, 强烈建议使用英文版, 中文版有2个package安装不上。
英文试用版下载地址: http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img; 中文试用版下载地址: http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=zh-cn&SrcCategoryId=&SrcFamilyId=5677ddc4-5035-401f-95c3-cc6f46f6d8f7&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fb%2fa%2f6%2fba691c56-8833-446c-82fe-cf94b588a622%2fchs_vs_2005_VSTS_180_Trial.img
2. 安装 Microsoft Visual Studio 2005 TeamSuite Service Pack 1. 注意:
英文版VS2005安装VS80sp1-KB926601-X86-ENU.exe
中文版安装 VS80sp1-KB926604-X86-CHS.exe
(http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC)
3. 如果是Vista 或者Window 7 还需要安装 SP1update for vista。Visual C++ 2005 Express 也是可以编译WebKit的,但是需要单独安装Platform SDK。
4. 安装 vs2005的4个升级包: KB918559/KB935225/KB943969/KB947315,注意: 1)安装顺序 2)升级包的语言须与自己的VS2005版本向匹配。
KB918559(http://archive.msdn.microsoft.com/KB918559/Release/ProjectReleases.aspx?ReleaseId=758)
KB935225(http://archive.msdn.microsoft.com/KB935225/Release/ProjectReleases.aspx?ReleaseId=909)
KB943969(http://archive.msdn.microsoft.com/KB943969/Release/ProjectReleases.aspx?ReleaseId=750)
KB947315(http://archive.msdn.microsoft.com/KB947315/Release/ProjectReleases.aspx?ReleaseId=872)
5. 下载并安装DirectX SDK, 下载地址:
6. 下载quicktime SDK并安装, url: http://developer.apple.com/quicktime/download/,注意: 需要注册一个开发者账号后才能下载,可以注册成最基本的免费账号。
7. 安装cgwin
如果是在公司内网环境,有可能需要设置cgwin的代理: export http_proxy=http://10035629:password@proxynj.zte.com.cn:80
同理,可以设置ftp的代理, ftp_proxy
8. 下载WebKitSupportLibrary.zip, 无需解压缩,直接放到WebKit根目录下,URL: http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html
9. 设置windows环境变量WEBKITLIBRARIESDIR和WEBKITOUTPUTDIR
将WEBKITLIBRARIESDIR设定为 WebKit 源代码目录\WebKitLibraries\win路径; 将WEBKITOUTPUTDIR 设为你打算要存放obj和dll 的输出文件夹,当然这个文件夹所在的分区至少要有4G的剩余空间。
说明: WEBKITOUTPUTDIR可以随便设,如果要保持和其他Build方式的一致性,那么就设置成为%WEBKIT_DIR%\output,这里%WEBKIT_DIR%是Webkit文件夹的绝对路径。WEBKITLIBRARIESDIR必须设置为%WEBKIT_DIR%\WebKitLibraries\win文件夹。
10. 执行更新脚本, 运行WebKit/Tools/Scripts/目录下的update-webkit和update-webkit-support-libs 两个脚本
11. 编译整个解决方案,可以采用以下两种方式中的任意一种即可,建议在VS2005中进行编译。编译之前,还可以通过set-webkit-configuration脚本来设置build-webkit等脚本的默认编译配置项。
a. 运行WebKit/Tools/Scripts/目录下的 ./build-webkit[-debug]脚本
b. 在VS 2005中打开\WebKit-r82856\Source\WebKit\win\WebKit.vcproj\WebKit.sln工程文件,编译整个解决方案。
1) 选择正确的Configuration,也就是Debug和Release。
这个sln默认带有六个编译配置Debug、Debug_all、Debug_Cairo、Release、Debug_Internal、Release_Cairo。用 Release 编译出来的就是用苹果自己的渲染引擎的版本,和Safari 的一致。 用Release_Cairo 编译出来的是支持Cairo渲染引擎的版本,这个版本可以脱离苹果的环境单独跑,但同时也无法放到苹果的Safari 环境中运行。
2) 设置DumpRenderTree, QTMovieWin,WebCore, WebKit, WinLauncher, TestWebKitAPIInjectedBundle, TestWebKitAPI等的项目属性,左侧选择“C/C++”,将右侧的”TreatWarnings As Errors”设置为”No”。
12. 要想监测编译是否成功,可使用WinLauncher.exe 这个应用程序加载WebKit进行测试。
编译成功后,生成的核心文件有:
WebKit.dll, JavaScriptCore.dll, QTMovieWin.dll,InjectedBundle.dll, WebKit.exe, MiniBrowser.exe(D:\webkit\WebKit-r87175\output\Debug\bin)。
注意:
1. 如果您机器上安装过Qt,那么检查一下环境变量里面是不是有QTDIR,如有,删了先;如果有这个环境变量,Webkit的build脚本会认为要编译Qt的port。
2. 编译时将在WEBKITOUTPUTDIR目录下生成config.log和previous-autogen-arguments.txt文件,这两个文件分别保存了配置信息和编译参数。
3. cyngwin的build-webkit脚本会为每个参与编译的工程,生成一个中间的bat文件,然后调用cmd.exe,运行这个bat文件,其中调用的vs2005编译器。从工程的buildlog中,可以看到这些行为。
4. 编译时候如果提示:
link: missing operand after `?t/'
Project : error PRJ0002 : Error result1 returned from 'C:\cygwin\bin\link.exe'.
则有可能编译时调用的连接器是cygwin而不是VC的, 此时需要将VC++的目录放在cygwin目录之前。在为每个项目生成的*PreBuild.cmd文件中有以下语句对PATH进行设置, 如: set PATH=%SystemDrive%\cygwin\bin;%PATH%。