ubuntu18.04编译webkitgtk

1.获取webkit源码:

webkit官网获取源码包:

wget -c https://webkitgtk.org/releases/webkitgtk-2.30.0.tar.xz

2.解压源码并安装依赖

执行:

webkitgtk-2.30.0$ ./Tools/gtk/install-dependencies

还需要再安装一个woff2包,执行命令:

sudo apt install libwoff2*

3.配置

Webkit是用cmake构建的,在顶层目录webkitgtk-2.30.0下,执行:

cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja -DENABLE_MINIBROWSER=ON -DUSE_WPE_RENDERER=OFF -DENABLE_GAMEPAD=OFF -DENABLE_BUBBLEWRAP_SANDBOX=OFF

4.编译

编译过程非常吃内存,如果内存不足,很可能遇到下面的错误:

为了增加可用内存,最好有足够的交换空间,如果交换分区的空间不足,可以通过增加交换文件的方式在增加交换空间,过程如下:

首先关闭所有交换空间,执行

sudo swapoff -a

创建一个8G的交换文件

sudo dd if=/dev/zero of=/swapfile bs=64M count=128

格式化交换空间为交换分区格式

sudo mkswap /swapfile

修改模式:

sudo chmod 0600 /swapfile 

执行启动所有交换分区

sudo swapon -a
sudo swapon /swapfile
sudo swapon --show

然后继续编译,不再出之前的错误,编译过程中,交换分区和交换文件的占用变化情况如下:

最后发现摄制成8G的交换文件还是不够,不得不外挂一个32G的优盘专门作为交换磁盘,如下图:

内存不够的问题最终解决。

编译完成:

安装,执行ninja install

 5.测试:

安装完成,编译的时候选中了MiniBrowser,实际运行一下:

6.多媒体

可以发现在安装倚赖的过程中安装了libavcodec-dev,所以很可能Webkitgtk利用了FFMPEG作为底层解码框架。

HTML5多媒体测试:

基于gstreamer的多媒体框架:

单进程模式:

结束!

Guess you like

Origin blog.csdn.net/tugouxp/article/details/116244342