XXXXX
C/C++
XXXXX
C#/.net
XXXXX
js
java
java
开发导航 开发导航 www.endv.cn
天云

windows vs2017环境下编译webkit 2

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: 4051, done.
Receiving objects:  41% (1661/4051), 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加载时的崩溃的版本信息。
posted @ 2018-01-27 16:23  Endv  阅读(643)  评论(0编辑  收藏  举报