在VS2008下编译调试QtWebKit
安装环境
1. 安装VS2008,最好打上各种补丁比如:
∙ Microsoft Visual Studio 2008 Service Pack 1 (iso) (www.microsoft/downloads/en/details.aspx?displaylang=en&FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61)
∙ Visual Studio 2008 Service Pack 1 ATL Security (www.microsoft/downloads/en/confirmation.aspx?familyid=294DE390-3C94-49FB-A014-9A38580E64CB&displaylang=en)
2. 安装 GNU tools (Install from gnuwin32.sourceforge/packages.html):
∙ Bison 2.3
∙ Gperf 3.0.3
∙ Flex 2.5.34
∙ LibIconv
注意安装路径不能有空格 (i.e. not in "C:\Program Files")
我安装到了C:\ProgramFiles\GnuWin32\bin
3. 安装ActivePerl
(www.activestate/Products/ActivePerl/)
4. 安装Cygwin ( /repository/webkit/trunk/WebKitTools/CygwinDownloader/cygwin-downloader.zip)
编译QT
1. 下载源代码 qt.nokia/downloads/windows-cpp-vs2008
2. 设置环境变量 QTDIR=C:\work\WebKit\qt-everywhere-opensource-src-4.6.3
3. 给Path追加环境变量 Path=Path;%QTDIR%\bin
4. 打开VS的命令行窗口Visual Studio 2008 Command Prompt
5. 执行:cd %QTDIR%
6. 执行:congifure -release –shared –platform win32-msvc2008
7. 执行:nmake (漫长的等待...)
编译QtWebkit
1. 下载webkit(/builds/trunk/win/1),我用的版本是WebKit-r66718
2. 解压webkit到C:\work\WebKit\WebKit-r66718(这是我用的目录,可以解压到任意目录下)
3. 下载WebKitSupportLibrary.zip并放到webkit根目录C:\work\WebKit\WebKit-r66718 下,记得无需解压,下载地址:developer.apple/opensource/internet/webkit_sptlib_agre
e.html
4. C:\work\WebKit\WebKit-r66718目录下建立WebKitBuild、WebKitBuild\Release、WebKitBuild\Debug三个目录,注意保持大小写。
5. 设置环境变量 WEBKITLIBRARIESDIR= C:\work\WebKit\WebKit-r66718\WebKitLibraries\win
6. 打开VS的命令行窗口Visual Studio 2008 Command Prompt
7. cd C:\work\WebKit\WebKit-r66718
8. C:\work\WebKit\WebKit-r66718>perl WebKitTools\Scripts\build-webkit --qt --debug(这里使用debug模式,漫长等待...)
9. 如果编译成功,会生成 C:\work\WebKit\WebKit-r66718\WebKitBuild\Release\lib\QtWebKitd4.dll
可能遇到的问题
1.在第6步的链接阶段时报下面的错误:
link /LIBPATH:"c:\work\WebKit\qt-everywhere-opensource-src-4.6.3\lib" /N
OLOGO /DEBUG /DLL /MANIFEST /MANIFESTFILE:"obj/debug\QtWebKitd.intermediate.mani
fest" /VERSION:4.80 /OUT:..\lib\QtWebKitd4.dll @C:\Users\liaoji\AppData\Local\Te
p
LINK : fatal error LNK1210: exceeded internal ILK size limit; link with /INCREMENTAL:NO
解决办法:
1. 用记事本打开 C:\work\WebKit\WebKit-r66718\WebKitBuild\Debug\WebCore\Makefile.Debug修改LFLAGS的参数:添加 /INCREME
NTAL:NO 。修改后如下 LFLAGS = /LIBPATH:"c:\work\WebKit\qt-everywhere-opensource-src-4.6.3\lib" /INCREMENTAL:NO /NOLOGO /DEBUG /DLL /MANIFEST /MANIFESTFILE:"obj/debug\QtWebKitd.intermediate.manifest" /VERSION:4.90
2. cd C:\work\WebKit\WebKit-r66718\WebKitBuild\Debug\WebCore\
3. 执行 "C:\Program Files\Microsoft Visual Studio 9.0\VC\" -f Makefile.debug
调试
1. 打开C:\work\WebKit\WebKit-r66718\WebKit\win\WebKit.vcproj\ WebKit.sln
2. 修改代码c:\work\WebKit\WebKit-r66718\WebKitTools\QtTestBrowser\main.cpp
int main(int argc, char **argv) { //中断运行,方便VS在这个时刻 attach到进程 MessageBoxA(NULL,"Pause for attach process","Pause",MB_OK); LauncherApplication app(argc, argv); //使用系统IE代理 QNetworkProxyFactory::setUseSystemConfiguration(true); if (app.isRobotized()) { ... } |
3. 在自己需要的行设置断点
4. 在执行一次C:\work\WebKit\WebKit-r66718>perl WebKitTools\Scripts\build-webkit --qt --debug(这次不会用太长时间)
5. 双击 C:\work\WebKit\WebKit-r66718\WebKitBuild\Debug\bin\
6. Attach到进程,选择菜单:Debug->Attach to Process…
7. 开始单步调试之旅…
>perl怎么下载
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论