热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用VS2015+win7编译WebKit(WebKit-r189384)

转自http:www.cjjjs.cnpaperxmkf20151010103054446.aspx一、准备工具,下载好官方要求的工具http:www.webkit.orgb

转自http://www.cjjjs.cn/paper/xmkf/20151010103054446.aspx

一、准备工具,下载好官方要求的工具http://www.webkit.org/building/tools.html,下载好源代码:http://nightly.webkit.org/builds/trunk/src/1,路径最好就是默认,避免不必要的麻烦

 

a) 安装vs2015。当然,官方说的默认安装是不正确的。默认安装会再编译时提示找不到”CL.EXE”,我们安装默认以后,还要安装C++相关的东西,我记得是还有两个,不过没有截图,如果你不想麻烦的话,全部和C++相关的都安装。

b) Cygwin

我用的是WebKit-r189384\Tools\CygwinDownloader文件夹下面的python脚本。在运行之前确保两件事

1、安装python2.7

2、安装python2.7完毕后,编辑文件cygwin-downloader.py


 

找到42左右的这行代码,修改为:

package_mirror_url = "http://mirrors.163.com/cygwin/"

也就是,采取指定的163源,不再是随机源。

 

做好这两件事以后

就可以运行该脚本了,如果安装了python的话,你可以直接双击运行。如果能直接运行的话就用管理员权限运行cmd,然后进入目录

1)Cd  E:\WebKit-r189384\Tools\CygwinDownloader

2)python cygwin-downloader.py

等待下载163个包(如果这里你不是163,那么,很可能就是官方的webkit脚本已经修改,此教程有些地方很可能已经不适用了),这里官方网站给了我很大的误导,首先是直接下载安装包
cygwin-downloader.zip  2,932KB

说直接解压,然后等待下载运行就能获取到全部的功能库,但是据我所知,至少有几个是没有包含进来的,curl没有就是其中一个坑。

 

下载完毕以后不用急着去运行安装

首先看一下setup.ini文件大小,我的为6,532KB(如果你做的时候,大小不一样,那么里面的安装模块很可能就不一样的了,此教程只能用于参考了)

 

启动setup.exe 的本地安装,如果no packet的类似信息

打开文件夹x86/看里面是否存在setup.ini,如果不存在则复制外面的进去,再重新启动

安装完毕以后,我们继续补充官方网站没有下载的包,install from internet,选择163源

1)curl :键入再Search输入框curl 然后把里面全部安装了(反正我不知道,也不想看,所以偷懒啦,163源速度快,很快就装好)

2)LWP:Search搜索,同上,全装

3)Rubygems:Search搜索,同上,全装。

4)Ruby-webkit:这个要看是否已经装了,如果安装了就不用再装

5)python-webkit:安装这个的原因是,有时候python脚本貌似有问题。具体什么问题我也不知道,反正包那么小,就装了呗

 

安装完cygwin以后,就按照官网的一步步走下来吧包括rebaseall。

安装QuickTime SDK(根据官网)

安装DirectX SDK(根据官网)

 

二、安装编译

编译前准备工作:

a. 下载WebKitSupportLibrary.zip(920KB)放到webkit目录下

b. 打开WebCore\platform\LocalizedString.cpp,在264行和266行中有"Look Up “%@”"和"Look Up “”"注意%@和两边的双引号是全角的,然后删除这些全角的引号即可。

c. WebKit\Tools\TestWebKitAPI\Tests\WTF\WTFString.cpp 右键用记事本编辑,另存为Unicode编码(本来是utf-8),因为这里有中文,会引起常量存在换行符的问题

d. 删除不必要的*.cmd脚本文件大小为0的,在webkit目录下搜索 *.cmd 大小:空 然后把搜索出来的全部删除

 

 

关于update-webkit的错误

a. 错误:Can't locate HTTP/Date.pm in @INC

解决方法:类似的就用相同的方法cpan XXX::XXX 大小写一致如:cpan HTTP::Date,然后等待下载成功,第一次cpan的时候会有一些设置,直接enter默认就可以了

b. Could not access https://developer.apple.com/opensource/internet/WebKitAuxiliaryLibrary.zip 

WebKitAuxiliaryLibrary.zip下载失败,类似这样的意思,什么无法访问的意思。

解决方法:这个是因为脚本解析错误造成的,用cygwin 安装 LWP全部。

c.错误:缺少Archive::Zip,则使用以下命令安装,需要代理。
root# cpan
cpan> install Archive::Zip
cpan> quit
root#

 

 

这个时候就可以运行build-webkit 脚本了。

a. error 1: :1:in `require': cannot load such file -- rubygems.rb

解决方法:cygwin 安装Rubygem ,用setup.exe搜索就可以了。

b. CL.exe的问题:安装好VS里面C++相关的项,我那时候是默认安装后编译一次发现问题后,打开WebKit\Source\WebKit\WebKit.vcxproj\WebKit.sln 然后VS提示要安装,所以点安装解决问题了。

三、问题总结

a) failed to determine path to aas directory 

b) Curl未找到命令:cygwin 安装curl相关模块。

 

参考文档

VS2015 Webkit http://blog.csdn.net/sunshineboyleng/article/details/48679799

http://blog.csdn.net/wxdvc/article/details/8508077

http://blog.csdn.net/kimmking/article/details/43910121


推荐阅读
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
author-avatar
董福强
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有