WebKit 编译笔记
WebKit 编译总结
我的安装环境是:
l window$7 32bit
l visiostudio2005 teamsuit中文版
l C盘应该空余10至20G, 另一盘应该空余20G左右
l 磁盘格式应为NTFS,若为FAT32编译完成运行时会出现问题,失去响应。
1. 首先是下载相应组件,安装应该使用默认安装否则难以调试:
表格1 相应下载文件
需下载文件的文件名 |
说明 |
下载地址 |
cygwin-downloader.rar |
官方推荐包,包含各种所需组件,应该按默认安装方式安装 |
http://vdisk.weibo.com/s/nFV-s |
WebKit-r110587.tar.bz2 |
网上找了一圈,有人推荐这个(原因和详情参考:http://xjchilli.blog.163.com/blog/static/45347739201242443655321/),SVN各有各的问题,没整明白。。 |
http://builds.nightly.webkit.org/files/trunk/src/WebKit-r110587.tar.bz2 |
quicktimesdk.zip |
好像要注册苹果ID才能下载 |
http://vdisk.weibo.com/s/nFVi_ |
DXSDK_Feb10.exe |
网上说再新的版本就不支持了,Window$貌似把这个给跳转了,直接下不到。。 |
http://download.microsoft.com/download/F/1/7/F178BCE4-FA19-428F-BB60-F3DEE1130BFA/DXSDK_Feb10.exe |
WebKitSupportLibrary.zip |
这个是用来更新win下lib文件的 |
http://vdisk.weibo.com/s/pzdd4 |
SafariSetup.exe |
提供环境 |
http://support.apple.com/kb/dl1531 |
chs_vs_2005_VSTS_180_Trial.img |
中文版VS2005 team suit 180天 试用版 |
http://download.microsoft.com/download/b/a/6/ba691c56-8833-446c-82fe-cf94b588a622/chs_vs_2005_VSTS_180_Trial.img |
2. 安装
a) WebKit-r110587.tar.bz2源码解压到d:\WebKit下(d:\WebKit即为工程的根目录),WebKitSupportLibrary.zip直接复制到工程根目录(d:\WebKit)下,不要解压
b) 给vs2005打补丁,很重要。如果为中文版就要打sp1、INTL、vista\Win7补丁、后缀为X86-CHS.exe的补丁(英文版相应后缀为X86-ENU,比中文版多),结合官网信息参考安装http://www.webkit.org/building/tools.html
c) 管理员身份运行cygwin(mintty or whatever)cd /cygdrive/d/WebKit/Tools/Scripts下,运行./update-webkit(更新win下lib文件,听说还会更新svn,但由于是轻量代码版没有svn信息,更新较快),也可以运行下./update-webkit-support-libs额 应该有用吧,../Tools/Scripts下set-webkit-configuration脚本可以进行简单设置,看着像默认为x86_64环境,抱着试试看的心态在./set-webkit-configuration --debug --32-bit之后生成的WebKitBuild目录下建立文本文件Architecture里面写x86(或者应该写x86_32?,像同目录下可以自动生成的Configuration里已经有的Debug)
d) 这一步分为几个小部分:
i. 添加环境变量(系统变量和用户变量各添加一次):
1. WEBKIT_DIR D:\WebKit
2. WEBKITLIBRARIESDIR %WEBKIT_DIR%\WebkitLibraries\win
3. WEBKITOUTPUTDIR %WEBKIT_DIR%\WebKitBuild
4. DXSDK_DIR C:\Program Files\Microsoft DirectX SDK (February 2010)\Include
5. PRODUCTION %WEBKIT_DIR%\Production(好像没用)
ii. Cygwin中文化,vim的encoding设置为gbk,右键options->Text->Locale设置为zh_CN、Character set为GBK,这样vim和目录都支持win环境了(不设置亦可,不过后面中文显示不正常而已,另外~/.bash_profile还添加了alias ls='ls --color=auto --show-control-chars' 和export LESSCHARSET=latin1,加点颜色)
iii. 修改部分文件:
1. D:\WebKit\Source\WebCore\platform\LocalizedStrings.cpp文件263行、265行引号(比如改为"Look Up \"%@\"", 和 "Look Up \"<selection>\"",,否则编译出错)
2. D:\WebKit\WebKitLibraries\win\tools\vsprops\common.vsprops中WarnAsError="true"为WarnAsError="false"(应该有两处,编译时有些warning会成为错误引起中断,这里消除它)
iv. 执行./build-webkit(由于之前设置为debug,否则要执行./build-webkit --debug),静等出错,XD,233333,出错是正常滴(快蜂鸟)
3. VS里打开解决方案:D:\WebKit\Source\WebKit\win\WebKit.vcproj\WebKit.sln,作以下设置:
a) 解决方案设置为Debug
b) 打开工具->选项->项目和解决方案->VC++目录包含文件添加C:\Program Files\Microsoft DirectX SDK (February 2010)\Include,库文件添加C:\Program Files\Microsoft DirectX SDK (February 2010)\Lib\x86
c) 设置WebKit为启动项目
d) 由于之前设置过warning不视为error这里就不用设置什么了,否则就挨个项目配置属性C/C++设置“将警告设为错误”为“否”
e) 设置WebKit通用属性->调试,命令 $(PROGRAMFILES)\Safari\Safari.exe,环境 WEBKITNIGHTLY=$(OutDir)(其实是后面调试才有用,早晚都得调嘛)
4. 检查以上无误,生成解决方案。附生成顺序,方便手动依次观察:WTFGenerated-> WTF-> JavaScriptCoreGenerated-> JavaScriptCore-> WebCoreGenerated-> QTMovieWin-> WebCore-> Interfaces-> WebKitGUID-> WebKitLib-> WebKit2Generated-> WebKit-> WebKit2Process-> testapi-> testRegExp-> WinLauncher-> WinLauncherLauncher-> TestNetscapePlugin-> ImageDiff-> ImageDiffLauncher-> WebCoreTestSupport-> DumpRenderTree-> DumpRenderTreeLauncher-> WebKitLauncherWin-> record-memory-win-> InjectedBundleGenerated-> InjectedBundle-> WebKitTestRunner-> WebKitTestRunnerLauncher-> gtest-md-> TestWebKitAPIGenerated-> TestWebKitAPI-> TestWebKitAPIInjectedBundle-> MiniBrowser-> MiniBrowserLauncher
5. 编译成功?启动调试吧