zoukankan      html  css  js  c++  java
  • Build WebKit On Windows 白果果白的专栏 博客频道 CSDN.NET

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

     


    Build WebKit On Windows


    分类:
    webkit


    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

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Qt 自定义model实现文件系统的文件名排序
  • 原文地址:https://www.cnblogs.com/lexus/p/2424621.html
Copyright © 2011-2022 走看看