WebKit在Windows上

内容

本指南提供了用于构建WebKit的指令在Windows 8.1没有Cygwin(AppleWin港口WebKit)。 你可以选择安装Cygwin运行测试。

安装开发工具

首先安装以下程序和设置您的环境:

  1. Visual Studio。 (确保你包括c++支持。) https://www.visualstudio.com/en-us/products/visual-studio-community-vs
  2. ActiveState的Perl。64位很好。 http://www.activestate.com/activeperl/downloads
  3. ActiveState的Python。 确保它的版本2。 而不是3. x。 64位很好。http://www.activestate.com/activepython/downloads确保你不从python.org下载它,因为我们硬编码可执行文件的名称为“python2.7”和python.org python不包括一个可执行的名字。
  4. Ruby。64位很好。 http://rubyinstaller.org/
  5. 野牛。 http://gnuwin32.sourceforge.net/packages/bison.htm确保安装路径没有空间,因为野牛不正确引用路径时通过他们m4。
  6. Gperf。 http://gnuwin32.sourceforge.net/packages/gperf.htm
  7. Flex。 http://gnuwin32.sourceforge.net/packages/flex.htm
  8. CMake。 https://cmake.org/download/
  9. Git。 http://www.git-scm.com/download/win注意:确保您选择的选项“使用Git Windows命令提示符。 “这是因为它安装一个sh.exe在你的路径,如果sh.exe有空间的位置,使被搞糊涂了。 当我安装这个,我不受控制的所有选项。
  10. iTunes。 这只是AppleWin所需的端口,不是WinCairo端口。 http://www.apple.com/itunes/download/这是必要的,因为它包括了。 dll实现苹果CoreGraphics这样的框架,CoreAnimation等等。
  11. “嗯哼”字体,用于测试。 http://www.w3.org/Style/CSS/Test/Fonts/Ahem/
  12. (可选:如果你打算与Subversion补丁)Subversion。 http://sourceforge.net/projects/win32svn/
  13. (可选:加快构建过程)忍者构建。 https://github.com/ninja-build/ninja/releases

确保所有刚才安装的程序(除了Visual Studio和iTunes)是通过你来访问 美元的路径http://www.itechtics.com/customize-windows-environment-variables/你可能需要修改后重新启动 美元的路径 新壳前将更新后的变量。

如果您是在代理,一定要设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量。

设置Git存储库

git告诉你的名字。

> git config --global user.name "John Smith"

告诉git你的电子邮件地址。

> git config --global user.email "johnsmith@example.com"

下载一个克隆存储库。

> git clone <git://git.webkit.org/WebKit.git>
> cd WebKit

git 正确的姿势:

endv@DESKTOP-ILIR8UR MINGW64 ~
$ git clone git://github.com/schacon/grit.git
Cloning into 'grit'...
remote: Counting objects: , done.
Receiving objects: % (/), 900.00 KiB | 9.00 KiB/s

下载完后:

使用vs的git工具下载:

(可选:如果你打算与Subversion补丁) 
自动配置本地克隆遵循Subversion:

> python Tools\Scripts\webkit-patch setup-git-clone

设置支持工具

下载WebKit支持库源代码树的根 https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html如果文件是正确命名,命名WebKitSupportLibrary.zip。 不提取其内容。 这个档案包含一个SDK(仅标题)Windows版本的苹果软件堆栈(比如CoreGraphics)。

此外,您需要下载 https://developer.apple.com/opensource/internet/WebKitAuxiliaryLibrary.zip

> cd Tools\Scripts
> perl update-webkit

如果上面的命令要求您重启你的机器,这样做。

注意,这个命令将自动下载 WebKitAuxiliaryLibrary.zip从苹果和提取到你的树(WebKitLibraries文件夹内)。 这个档案包含的Windows版本的所有公共图书馆WebKit取决于(如libxml2)。 还请注意,该命令可能设置环境变量。

构建WebKit

> perl build-webkit 

注意,这个命令将自动提取WebKitSupportLibrary。 步中下载zip(6)到你的树(WebKitLibraries文件夹内)。

安装Cygwin(可选)

您可以构建与Visual Studio 2015和Visual Studio 2015 Community Edition。

使用默认选项安装。

Cygwin是公用事业为Windows的集合,不仅包括Subversion的客户,但也需要额外的工具来构建

WebKit的来源。 我们取得了一个下载器可以自动收集所有必需的包。

下载 cygwin-downloader.zip。 提取一些文件夹和档案的内容开始 cygwin-downloader.exe 从文件夹中。 这将下载所需的所有Cygwin包。 当所有的包已经完成下载,Cygwin安装程序将会启动。 选择 安装从本地目录 ,然后单击 下一个 直到安装完成。 如果您正在运行Vista,安装程序无法自动启动,你将不得不手动启动Cygwin 安装程序 

注意: 如果您是在您需要设置代理  HTTP_PROXY 环境变量的URL代理。 这可能匹配模式: 
http[s]://[username[:password]@]somehost.com[:port]
。 方括号( […] )不是URL的一部分,但是用来表示可选元素的URL。
 
注意: Vista可能没有警告你,Cygwin安装正确。 忽略这个警告,告诉Vista,安装成功。
警告: 如果您正在运行Vista和Windows 7,Cygwin可能难以实现 叉 (POSIX函数经常用于启动子进程,需要许多的WebKit构建工具)。 为了使 cygwin1.dll 成功实现叉最好是如果没有DLL加载在父进程在运行时重新安置。 达到这一点的方法之一是变基所有 cygwin dll 除外 cyglsa64.dll 和 cygwin1.dll基地地址,让他们不要重叠在内存中。

为了变基所有cygwin dll rebaseall cygwin提供的脚本安装的 本 目录(通常是 C:\cygwin\bin )。 该脚本必须逃离 ash.exe (在相同的目录中),而没有其他应用程序运行cygwin。

ash.exe 命令行编辑功能非常有限所以剪切和粘贴命令行。 
的 路径 环境变量可能不包含的 / bin 目录默认脚本应该推出 /bin/rebaseall 。 
如果 rebaseall 是抱怨未能写入一个Windows临时目录(即 /cygdrive/c/Users/you/AppData/Local/Temp ),修复文件夹的权限(即  /cygdrive/c/Users/you/AppData/Local/Temp )或改变TMP环境变量,使之指向一个目录与适当的许可标志

(例如: export TMP=/tmp )。 注意: 变基过程可能需要重复包含任何新的库后来添加的cygwin清单完整cygwin路径这些库的文件和传递文件 rebaseall 通过  -T fileName 文件名 命令行参数。 下的dll   LayoutTests/http/conf  是一个相关的用例。

删除下面的台词   /home/[username]/.bashrc (if present):  (如果存在):

unset TMP
unset TEMP

会防止捡Windows TMP和临时环境变量。

如果您是在代理需要做以下允许cygwin svn通过代理(类似步骤可供您的Windows svn):

  • 在bash中(Cygwin)运行: svn的帮助 。 这将创建在您的cygwin主目录文件  .subversion/servers服务器
  • 编辑上面提到的文件,按照文件中的指令设置你的代理设置。

安装Perl 
下载Perl 5.18(或更新) activestate.com并安装它。

安装Python 
下载Python 2.7.8 activestate.com并安装它。

安装Ruby 
下载Ruby 2.0.0 rubyinstaller.org并安装它。

安装php 中,我们使用以下步骤(你需要这个运行http布局测试): 
1

cd /usr/local/bin

 
2

wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg

 
3所示

chmod a+x apt-cya

 
4所示。 改变的第341行 apt-cya 脚本

wget -nc $mirror/../$install

5。 安装php

apt-cyg -m ftp://sourceware.org/pub/cygwinports/x86 install php

可选 :64位Windows的热修复补丁(Windows 7或更早)禁用用户模式调滤波器为例外

没有 976038年热修复补丁在回调例程可能抛出异常,不会导致崩溃,但离开应用程序处于不一致的状态,可能会导致崩溃。 你需要点击“视图和请求热修复补丁下载”并填写表单。 下载链接热修复补丁和密码将发邮件给你。

Cygwin的代码

  1. 打开一个Cygwin壳牌在桌面上双击Cygwin图标启动一个新的Shell。
  2. 你可以 下载一个快照WebKit的源代码树。 这是每日更新。

类型这些命令来查看WebKit源树:

tar jxvf WebKit-SVN-source.tar.bz2
cd webkit

注意存档结帐使用一个HTTP连接。 我们建议使用HTTPS而不是运行以下命令:

svn switch --relocate http://svn.webkit.org/repository/webkit/trunk https://svn.webkit.org/repository/webkit/trunk
 

另外,输入这个命令查看WebKit源树:

svn checkout https://svn.webkit.org/repository/webkit/trunk WebKit
  1. 安装WebKit支持库

    下载WebKit支持库源代码树的根( C:\cygwin\home\<username>\WebKit )。

    如果文件是正确命名,重命名它 WebKitSupportLibrary.zip 。 不提取其内容。

  2. 运行  ./Tools/Scripts/update-webkit 脚本更新源代码树。

    如果你下载tarball,这将带来最新的。 Windows用户必须执行该命令后,首先获取代码,因为它会下载额外的库,需要构建。

一旦你有了一个当前的树,是下一步 建筑WebKit

得到一个崩溃日志

Windows错误报告(回答)已经被集成到操作系统。 默认情况下,微软Windows上传崩溃日志,但不保存一个本地副本。 这是通过注册表配置。

1 将以下文本保存到一个文件中命名 wer.reg Windows注册表编辑器5.00版本

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Wind

2 双击文件从Windows Explorer和肯定地回应任何提示。

3 重新启动

下次旅行(或任何其他应用程序)崩溃,崩溃信息将写入一个文件夹内  %LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue   检查修改日期,以确保您使用正确的文件。 一定要在错误报告中包含以下文件:

WER_xxxx_.tmp.mdmp
这是最重要的文件。 里面包含崩溃转储,可以打开Visual Studio调试器或其他窗口。
WER_xxxx_.tmp.version.txt
包含操作系统版本和其他硬件的信息。
WER_xxxx_.tmp.appcompat.txt
列出所有的dll加载时的崩溃的版本信息。

windows vs2017环境下编译webkit 2的更多相关文章

  1. windows vs2017环境下编译webkit

    源码地址:https://github.com/BlzFans/wke 先看官方的说明: Web和Flash的嵌入式3D游戏,基于WebKit 建筑工作单元 VS2005: 1安装Visual Stu ...

  2. Windows+VS2012环境下编译调试MySQL源码 转

    http://m.blog.csdn.net/blog/SnowyWolf/18952643

  3. qt5.11.2+vs2017环境下opencv3.4.1编译配置

    OpenCV是一个开源的计算机库,它可以帮助视觉工作者做很多富有创造性的工作,在图像处理领域扮演着重要的角色.由于opencv3.x的存在,不管你是学生还是研究人员,是专家还是初学者,都可以快速的建立 ...

  4. Windows XP环境下 搭建Android NDK环境

    搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygw ...

  5. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  6. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  7. Redhat环境下编译安装Google Bazel

    Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...

  8. 在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法   前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloade ...

  9. WP8_(windows phone环境下)上传文件从C#到php接口

    在windows phone环境下,将手机上的图片上传到服务端(php环境): 注意事项:在上传的地方,头文件中name,例如name= img,则在php服务端处理时 ,需要约定好 存取一致 php ...

随机推荐

  1. dwz(jui)刷新当前dialog的方法

    做了个查看日志的功能,需要刷新查看当前的dialog,方法如下: 1 <script type="text/javascript"> 2 $("#bt_ref ...

  2. 如何获得ios7系统中的蓝色

    最简洁的办法,直接使用下列代码: [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] 最彻底的办法: OS7Colors是U ...

  3. css 滚动条样式

    1,Overflow内容溢出时的设置 overflow 水平及垂直方向内容溢出时的设置 overflow-x 水平方向内容溢出时的设置 overflow-y 垂直方向内容溢出时的设置 以上三个属性设置 ...

  4. OLE、OCX和ActiveX控件之间的比较

      OLE(Object Linking and Embedding,对象连接与嵌入) 一.过去的OLE和今天的OLE 最初的OLE含义是指在程序之间链接和嵌入对象数据,它提供了建立混合文档的手段(资 ...

  5. Linux学习11-CentOS如何设置java环境变量

    前言 之前用yum安装的java,现在想添加环境变量,yum安装的java路径在哪呢?如何找到安装的路径,把jdk添加到环境变量. 本篇详细讲解linux系统设置java环境变量 找到jdk路径 之前 ...

  6. SQLUnit 环境搭建

    1 技术须要积累 前几天去一位笛友小赖家玩,才知道他的笛子吹得好不是偶然.是由于他真的用功了,电脑里面下载有超多的视频.教程等!这真的非常让我震撼!一直是在公司做技术,但资料考不出来,而我整理了多少技 ...

  7. 《Linux就是这个范儿》

    <Linux就是这个范儿> 基本信息 作者: 赵鑫磊    (加)Jie Zhang(张洁) 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115359360 上架时间:2 ...

  8. Java NIO 的前生今世 之四 NIO Selector 详解

    Selector Selector 允许一个单一的线程来操作多个 Channel. 如果我们的应用程序中使用了多个 Channel, 那么使用 Selector 很方便的实现这样的目的, 但是因为在一 ...

  9. java中 列表,集合,数组之间的转换

    java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...

  10. 空间金字塔池化(Spatial Pyramid Pooling,SPP)

    基于空间金字塔池化的卷积神经网络物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187655 作者:hjimce 一.相关理论 本篇博文 ...