• 使用VS2013编译webkit


    环境:

    win7_x64、VS2013

    开始:

    一、下载webkit

    从网站"https://github.com/WebKit/webkit"下载webkit,我下载的版本最后的修改记录时间为2015-6-17,解压到目录,例如"D:/webkit-master"

    二、安装cygwin

    默认安装在系统目录,因为编译webkit时会从系统目录查找cygwin,如果没有安装在操作系统目录,则需要将cygwinlib加入环境变量path中,然后将项目中的%SystemDrive%cygwinin删如果你在安装cygwin之前独立安装了python、请先将python卸载,由于最新版本的webkit使用python一些比较新的库,所以对python的版本也会有要求,建议2.7.0以上版本;打开cygwinlib uby2.2.0目录,新建空白文件rubygems.rb,否则运行ruby,会提示找不到文件,在cygwin命令提示符窗口下运行以下命令,可以测试安装情况

    which perl
    which python
    which ruby

    三、安装webkit依赖库

    1. DirectX SDK下载,并安装2. 下载Safari,并安装3. 下载WebKitAuxiliaryLibrary.zip和WebKitSupportLibrary.zip,将win目录解压到“D:/webkit-master/WebKitLibraries/win"目录

    四、设置环境变量

    1. WEBKIT_DIR D:/webkit-master2. WEBKITLIBRARIESDIR %WEBKIT_DIR%/WebkitLibraries/win3. WEBKITOUTPUTDIR %WEBKIT_DIR%/build4. Path D:cygwinin;设置完毕后,最好重启系统(有可能我们设置的环境变量没有及时生效)。

    五、更新文件更新时间

    更新create_regex_tables、Keywords.table文件更新时间,打开create_regex_tables和更新create_regex_tables、Keywords.table文件,删除一个字符后再添加该字符,然后保存即可修改更新时间,在WebKit项目中,部分.h、.cpp和.idl文件是由.in、.table、.json、.css等文件生成的,如果这些文件的更新时间早于这些.h、.cpp文件,可能不会重新生成文件,会出现一些变量定义没有找到的错误(例如maxTokenLength等等)。

    六、编译webkit

    1. 编译"WTF Projects"项目

    1. 编译"WTFGenerated"工程

    由于我的cygwin不是安装在系统目录下,所有要做一些修改,如果你将cygwin安装在系统目录则不需删除"%SystemDrive%cygwinin",打开”属性“"NMAKE",将%SystemDrive%cygwininwhich.exe修改为which.exe(我在前面将cygwinin目录添加到了path中,可以which.exe直接访问),开始编译。

    2. 编译工程WTF工程:

    在编译工程前,我们需要修改

    #ifndef U_DISABLE_RENAMING
    #define U_DISABLE_RENAMING 1
    #endif
    修改为
    #ifndef U_DISABLE_RENAMING
    #define U_DISABLE_RENAMING 0
    #endif

    2. 编译“JavaScriptCore Projects”项目

    1、编译"LLIntOffsetsExtractor"工程-> LLIntOffsetsExtractor.exe

    2、编译"LLIntAssembly"工程->LLIntAssembly.h

    打开“属性“"NMAKE",将%SystemDrive%cygwininwhich.exe修改为which.exe,理由上面以说明

    3、编译"LLIntDesiredOffsets"工程->LLIntDesiredOffsets.h

    4、编译"JavaScriptCoreGenerated"工程

    5、编译"JavaScriptCore"工程

    3、编译”WebCore Projects“项目

    1、编译"WebCoreGenerated"工程

    打开“属性“"NMAKE",将%SystemDrive%cygwininwhich.exe修改为which.exe,理由上面以说明

    2、编译”WebCore“工程

    错误:..platformLocalizedStrings.cpp(250): error C2001: 常量中有换行符,将"Look Up “%@”"替换为"Look Up "%@""

    4、编译"WebKit Projects"项目

    1、编译"Interfaces"工程

    打开"InterfacesPreBuild.cmd"和"InterfacesPostBuild.cmd"文件,删除"%SystemDrive%cygwinin",删除WebKitBuildDebuguildfailed文件

    2、编译"WebKit"工程

    5、编译”WinLauncher Projects“项目

    1、编译”WinLauncherLib“工程

    打开”WinLauncherLibPreBuild.cmd“文件,删除"%SystemDrive%cygwinin"

    2、编译"WinLauncher"工程

    打开”WinLauncherPreBuild.cmd“文件,删除"%SystemDrive%cygwinin";打开"DLLLauncherMain.cpp"文件,修改appleApplicationSupportDirectory函数为

    static wstring appleApplicationSupportDirectory()
    {
    	// 表示从当前可执行文件目录查找依赖的Safari的dll
    	return L"./";
    }
      

    七、调试webkit

    将SafariApple Application Support下的一些dll拷贝到WinLauncher.exe目录下,运行WinLauncher.exe。

    -->

  • 相关阅读:
    SQL 递归查询(根据指定的节点向上获取所有父节点,向下获取所有子节点)
    限流脚本
    使用DANT做FTP的转发代理
    忘记token怎么加入k8s集群
    CentOS7.x使用overlay2文件系统
    文件已删除但句柄没有释放导致磁盘空间用完
    多线程学习(一)什么是多线程?
    自己用过的web软件tools软件以及玩过的游戏
    day1 学习历程
    git合并请求
  • 原文地址:https://www.cnblogs.com/dongc/p/4606207.html
Copyright © 2020-2023  润新知