环境:

win7_x64、VS2013

开始:

一、下载webkit

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

二、安装cygwin

默认安装在系统目录,因为编译webkit时会从系统目录查找cygwin,如果没有安装在操作系统目录,则需要将cygwin\lib加入环境变量path中,然后将项目中的%SystemDrive%\cygwin\bin删如果你在安装cygwin之前独立安装了python、请先将python卸载,由于最新版本的webkit使用python一些比较新的库,所以对python的版本也会有要求,建议2.7.0以上版本;打开cygwin\lib\ruby\2.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:\cygwin\bin;设置完毕后,最好重启系统(有可能我们设置的环境变量没有及时生效)。

五、更新文件更新时间

更新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%\cygwin\bin\",打开”属性“\"NMAKE",将%SystemDrive%\cygwin\bin\which.exe修改为which.exe(我在前面将cygwin\bin目录添加到了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%\cygwin\bin\which.exe修改为which.exe,理由上面以说明

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

4、编译"JavaScriptCoreGenerated"工程

5、编译"JavaScriptCore"工程

3、编译”WebCore Projects“项目

1、编译"WebCoreGenerated"工程

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

2、编译”WebCore“工程

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

4、编译"WebKit Projects"项目

1、编译"Interfaces"工程

打开"InterfacesPreBuild.cmd"和"InterfacesPostBuild.cmd"文件,删除"%SystemDrive%\cygwin\bin\",删除WebKitBuild\Debug\buildfailed文件

2、编译"WebKit"工程

5、编译”WinLauncher Projects“项目

1、编译”WinLauncherLib“工程

打开”WinLauncherLibPreBuild.cmd“文件,删除"%SystemDrive%\cygwin\bin\"

2、编译"WinLauncher"工程

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

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

七、调试webkit

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

-->

使用VS2013编译webkit的更多相关文章

  1. Win7 & VS2013 编译 WebKit 总结

      [转载请注明Moon出品: http://blog.csdn.net/lzl124631x] 距离上次编译WebKit(实际日期是2012年10月)已经过去一年多了, 这期间有很多人问我编译相关的 ...

  2. win7、vs2013编译webkit总结

    在windows7.vs2013环境下编译webkit,本人测试成功 1.解压cygwin到C盘下(建议放在C盘更目录下,否则编译期间会有部分文件找不到) 启动命令:C:\cygwin\bin\min ...

  3. VS2013编译WEBKIT

    0,安装VS2013:DXSDK_Jun10.exe:QuickTimeSDK.exe 1,WebKit-r174650.tar.bz2 以管理员解压(非管理员解压最后几下总是报错) 2,设置环境变量 ...

  4. VS2013编译google protobuf 出现问题error C3861: “min”:

    问题描述: 今天用vs2013编译protobuf 2.4.1 报错: 错误 3 error C3861: "max": 找不到标识符 f:\google\protobuf\pro ...

  5. Vs2012(Vs2013) 编译 64位 Qt (动态库), 并使用自编译Qt建立工程(悲催经历)。(含遗留问题)

    仅供参考. 体会:我个人此次编译不该使用Vs2013编译Qt. 使用以下程序: Qt : qt-opensource-windows-x86-msvc2012_64_opengl-5.2.1.exe ...

  6. vs2013编译boost1.55.0 32/64位

    在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\detail\has_member_function_call ...

  7. VS2013编译python源码

    系统:win10 手头有个python模块,是用C写的,想编译安装就需要让python调用C编译器.直接编译发现使用的是vc9编译,不支持C99标准(两个槽点:为啥VS2008都还不支持C99?手头这 ...

  8. net-snmp源码VS2013编译添加加密支持(OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  9. 用vs2013编译lua源码方法(一)

    用vs2013编译lua源码方法 来源:网络    编辑:admin 1.下载lua源码:lua-5.2.3.tar.gz,解压 2.用vs2013建立一个win32工程: 1)下载后解压到一个目录下 ...

随机推荐

  1. hdu_5968_异或密码(预处理+二分)

    题目链接:hdu_5968_异或密码 题意: 中午,不解释 题解: 前缀处理一下异或值,然后上个二分查找就行了,注意是unsigned long long #include<bits/stdc+ ...

  2. SSL读书笔记

    摘要: 第一次写博客,为读书笔记,参考书目如下: <HTTP权威指南> <图解HTTP> <大型分布式网站架构设计与实践> 作者:陈康贤 一. HTTP+SSL=H ...

  3. kettle 连接Hadoop 遇错

    kettle从windows中往hdfs中写文件

  4. Excel教程(10) - 逻辑运算符

    AND 用途:所有参数的逻辑值为真时返回 TRUE(真):只要有 一个参数的逻辑值为假,则返回 FALSE(假). 语法:AND(logical1,logical2,  ). 参数:Logical1, ...

  5. [ An Ac a Day ^_^ ] CodeForces 426C Sereja and Swaps 优先队列

    题意: 给你一个有n个数的序列 取一个区间 这个区间内的数可以与区间外的值交换k次 问这样的区间最大值是多少 思路: 看数据是200 时间复杂度O(n*n) 应该可以暴力 顺便学习一下优先队列 枚举区 ...

  6. 经典dp 编辑距离

    给定两个字符串S和T,对于T我们可以进行三种操作 (1)在任意位置增加字符 (2)删除字符 (3)替换字符 问最少多少次能把T变成S? 设f(i,j)是S的前i位和T的前j位对齐的最小花费 接下来分析 ...

  7. 抛弃阿里云,中国用户购买海外VPS的五个理由

    王掌柜在过去的五年多时间里,折腾过不少vps品牌,最开始玩的是一年一百多块钱的香港虚拟主机,后来业务量大了,开始折腾国内的小鸟云.阿里云.腾讯云.电信云.百度云主机,国外的linode\interse ...

  8. NOIP2001-普及组复赛-第二题-最大公约数和最小公倍数问题

    题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数条件:  1.P,A是正整数 ...

  9. Openjudge-计算概论(A)-角谷猜想

    描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1.如,假定初始整数为5,计算过程分别为16.8.4.2.1 ...

  10. 单片机上使用TEA加密通信(转)

    源:单片机上使用TEA加密通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.72 单片机:STM32 说 ...