webkit浏览器内核编译(2024年11月份版本)

ops/2024/11/24 20:36:03/

webkit浏览器内核编译

        本文详细介绍了如何安装和配置Webkit的编译环境和工具的安装,以及在Windows上编译和运行WebKit浏览器引擎的过程,包括安装依赖、设置环境变量、生成解决方案并最终运行附带的MiniBrowser示例。

一、WebKit简介

        WebKit 是一个开源的浏览器引擎,与之相对应的浏览器内核引擎有Gecko(Mozilla Firefox 等使用),Trident(也称MSHTML,IE 使用)和EdgeHTML(也称Chakra,Edge和其他UWP浏览器使用)。
       同时WebKit 也是苹果Mac OS X 系统浏览器的引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了KHTML,主要原因是因为它拥有清晰的源码结构、极快的渲染速度。苹果公司将 KHTML进行优化 发扬光大,逐渐演进开发为WebKit 引擎的浏览器 Safar,后来又将WebKit进行了开源i。

二、安装choco管理器和依赖

1.安装chocolatey管理器

  在管理员模式打开cmd,输入下面的指令
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

进行安装chocolatey管理器的程序框架。

2.安装依赖

        安装好chocolatey后,接着安装安装CMake、Perl、Python、Ruby、gperf (GnuWin32 gperf)、LLVM、Ninja。Python 3.12等编译webkit所需的必备工具。
choco install -y cmake ActivePerl ruby gperf ninja svn patch diffutils

        上面的命令,安装还是很顺利能执行的,但是由于版本更新的原因,active Perl和svn,可能会提示失败,本人就经历了这个痛苦,可以自己下载相应的版本,再单独安装就可以。建议下载ActivePerl-5.28.0000-MSWin32-x64-b462fde1,Setup-Subversion-1.8.17,避免下错版本错误导致编译不成功。

        LLVM,在安装VS的相应版本时,要选择配置相应的插件。以便clang-cl插件的安装,可以为后面配置clang-cl选项提供工具。

3.源码下载

        以下三个链接选一个进行下载(推荐第三个,这个在国内比较稳定,前两个国外的服务器,下载很慢,或者基本不成功)
git clone https://git.webkit.org/WebKit.git
git clone https://github.com/webkit/webkit.git
git clone https://gitee.com/mirrors/WebKit.git

        额外的依赖 在更新编译时,会自动下载相应的目录下,

三、配置环境变量

打开X64 Native Tools Command Prompt for VS 2022,并切换到Webit目录,输入一下命令进行配置:

set WEBKIT_LIBRARIES=%cd%\WebKitLibraries\win    

set WEBKIT_OUTPUTDIR=%cd%\WebKitBuild       //编译之后存放的文件夹

set CC=clang-cl

set CXX=clang-cl

设置好编译环境的变量。


四、开始编译

        继续在X64 Native Tools Command Prompt for VS 2022窗口命令行,并确保切换到Webit目录。

perl Tools\Scripts\update-webkit     //检查更新webkit脚本
perl Tools/Scripts/build-webkit --wincairo --release --no-ninja --generate-project-only      //生成解决方案(此处有坑,尤其是国内用户,编译遇到困难时可以联系我,并下载我提前下载更新的依赖包,具体下载地址如下:https://download.csdn.net/download/jyl_sh/90027148)
devenv WebKitBuild\Release\WebKit.sln       //打开解决方案
把Tools/MiniBrowser设置为启动项目 之后本地windows调试编译,编译是个痛苦的过程,需要很久(有可能是跨天额^-^)。

五、运行

最后进入WebKitBuild\Release\bin64,把额外的依赖包下面的bin目录下的内容拷贝到此目录下。
运行 Minibrowser.exe

编译结果可以从下面的网址下载:https://download.csdn.net/download/jyl_sh/90027503

六、成品展示


http://www.ppmy.cn/ops/136394.html

相关文章

AR智能眼镜|AR眼镜定制开发|工业AR眼镜方案

AR眼镜的设计与制造成本主要受到芯片、显示屏和光学方案的影响,因此选择合适的芯片至关重要。一款优秀的芯片平台能够有效提升设备性能,并解决多种技术挑战。例如,采用联发科八核2.0GHz处理器,结合12nm制程工艺,这种低…

Linux:进程

✨✨所属专栏:Linux✨✨ ✨✨作者主页:嶔某✨✨ 冯诺依曼体系结构 现代计算机发展所遵循的基本结构形式始终是冯诺依曼结构。这种结构特点是“程序存储,共享数据,顺序执行”,需要CPU从存储器取出指令和数据进行相应的…

秋招面试基础总结,Java八股文基础(串联知识),四万字大全

目录 值传递和引用传递 静态变量和静态代码块的执行顺序 Java​​​​​​​集合的框架,Set,HashSet,LinkedHashSet这三个底层是什么 多线程篇 Java实现多线程的方式 假设一个线程池,核心线程数是2,最大线程数是3,阻塞队列是4…

一种构建网络安全知识图谱的实用方法

文章主要工作 论述了构建网络安全知识库的三个步骤,并提出了一个构建网络安全知识库的框架;讨论网络安全知识的推演 1.框架设计 总体知识图谱框架如图1所示,其包括数据源(结构化数据和非结构化数据)、信息抽取及本体构建、网络…

STL之哈希

STL之哈希 unordered_set/map&哈希之介绍unordered系列哈希哈希表的模拟实现 unordered_set&/map的模拟实现哈希的应用位图(bitmap/bitset)布隆过滤器(Bloom Filter)海量数据处理 unordered_set/map&哈希之介绍 unor…

联邦学习安全聚合算法综述(论文解析)以及如何确定自己研究方向的方法

自己写相关论文的方法: 可以重点看看综述类论文的未来研究方向和引言中前人已经做过的内容 联邦学习安全聚合算法综述 auth:江萍 1 通讯作者 李芯蕊 1 赵晓阳 2 杭永凯 摘要 摘要:随着深度学习技术的发展,人工智能在社会的各个方面有着重要…

Redis设计与实现 学习笔记 第二十章 Lua脚本

Redis从2.6版本引入对Lua脚本的支持,通过在服务器中嵌入Lua环境,Redis客户端可以使用Lua脚本,直接在服务器端原子地执行多个Redis命令。 其中EVAL命令可以直接对输入的脚本进行求值: 而使用EVALSHA命令则可以根据脚本的SHA1校验…

个人笔记本安装CUDA并配合Pytorch使用NVIDIA GPU训练神经网络的计算以及CPUvsGPU计算时间的测试代码

2024小白安装Pytorch-GPU版(Anaconda,CUDA,cuDNN讲解) 安装CUDA并使用PyTorch进行GPU加速的神经网络训练,需要遵循以下步骤: 1. 检查GPU兼容性 在开始之前,需要确认你的个人笔记本的GPU是否支…