gtk和webkitgtk源码编译

博客介绍了gtk3依赖glib、gdkpixbuf等,webkitgtk依赖gtk,重点讲述了编译gtk和webkitgtk源码并安装到自定义目录的过程,还表示所有编译的包和源代码可私信获取。

gtk3依赖glib,gdkpixbuf,pango,atk和Gobject Introspection;webkitgtk依赖gtk,下面为我编译gtk和webkitgtk源码并安装在自定义目录的过程

zlib:
./configure --prefix=/home/gtbureau/project/zlib-1.2.11/lib
make
make install
PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig

libffi:
1、./autogen.sh会报错
2、vi configure.ac 加入宏m4_pattern_allow([LT_SYS_SYMBOL_USCORE])
报错make[3]: *** [Makefile:1472:../doc/libffi.info] 错误 127
3、安装texinfo
sudo apt-get update
sudo apt-get install texinfo
4、./configure --prefix=/home/gtbureau/project/libffi-3.2.1/lib
make 
sudo make install

编译glib:
 ./configure PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig --prefix=/home/gtbureau/project/glib-2.58.3/lib
configure: error: *** Could not find libmount
安装libmount:util-linux-2.39.1.tar.gz
./autogen.sh
./configure --prefix=/home/gtbureau/project/util-linux-2.39.1/usrlib
make
sudo make install

 ./configure PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig --prefix=/home/gtbureau/project/glib-2.58.3/lib
configure: error: Package requirements (libpcre >= 8.31) were not met:No package 'libpcre' found
安装libpcre
configure: error: Invalid C++ compiler or C++ compiler flags
sudo apt-get install g++
./configure --prefix=/home/gtbureau/project/pcre-8.45/lib
make
sudo make install

./configure --with-pcre=/home/gtbureau/project/pcre-8.45/lib/ PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig --prefix=/home/gtbureau/project/glib-2.58.3/lib
编译glib成功!
-------------------------------------------------------------------------------------------------------

编译atk
设置pkgconfig搜索库目录
export PKG_CONFIG_PATH=/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig
meson build --prefix=/home/gtbureau/project/atk-2.30.0/lib
Build-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and cmake)


编译gobject_introspection-1.29.0
Package 'mount', required by 'gio-2.0', not found
./configure PKG_CONFIG_PATH=/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig --prefix=/home/gtbureau/project/gobject-introspection-1.29.0/lib

configure: error: Tests enabled but cairo not found; pass --disable-tests or install cairo
./configure --prefix=/home/gtbureau/project/cairo-1.17.6/lib
configure: error: recommended PNG functions feature could not be enabled
修改libpng-1.6.34/scripts目录中的makefile.linuxpreifx和zlib依赖路径拷贝到libpng-1.6.34目录并去掉后缀名(参考:https://blog.csdn.net/weixin_42489042/article/details/83027531)
make 
sudo make install

编译安装pixman(指定安装路径即可)

export PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig
export C_INCLUDE_PATH=/home/gtbureau/project/zlib-1.2.11/lib/include
export LIBRARY_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib
./configure --prefix=/home/gtbureau/project/cairo-1.17.6/lib 
编译cairo成功!

PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/cairo-1.17.6/lib/lib/pkgconfig
./configure --prefix=/home/gtbureau/project/gobject-introspection-1.50.0/lib 
编译gobject-introspection成功!
如果之前有make失败的情况,一定要先sudo make clean,然后重新autogen

PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/cairo-1.17.6/lib/lib/pkgconfig:/home/gtbureau/project/gobject-introspection-1.50.0/lib/lib/pkgconfig

meson _build --prefix=/home/gtbureau/project/atk-2.30.0/lib
cd _build
ninja
ninja install
编译atk成功!
-----------------------------------------------------------------------------------------------------------------------------------------
PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/cairo-1.17.6/lib/lib/pkgconfig:/home/gtbureau/project/gobject-introspection-1.50.0/lib/lib/pkgconfig:/home/gtbureau/project/atk-2.30.0/lib/lib/x86_64-linux-gnu/pkgconfig

编译gdk-pixbuf
meson _build --prefix=/home/gtbureau/project/gdk-pixbuf-2.40.0/lib
cd _build
ninja
sudo ninja install

PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/cairo-1.17.6/lib/lib/pkgconfig:/home/gtbureau/project/gobject-introspection-1.50.0/lib/lib/pkgconfig:/home/gtbureau/project/atk-2.30.0/lib/lib/x86_64-linux-gnu/pkgconfig:/home/gtbureau/project/gdk-pixbuf-2.40.0/lib/lib/x86_64-linux-gnu/pkgconfig:/home/gtbureau/project/freetype-2.13.1/lib/lib/pkgconfig

编译pango
./autogen.sh
*** No GTK-Doc found, please install it ***
sudo apt-get install gtk-doc-tools

编译安装freetype
直接编译安装在指定目录即可

编译安装fontconfig
make报错需要安装gperf

编译安装harfbuzz
直接编译安装在指定目录即可

编译安装fribidi
直接编译安装在指定目录即可

注意:cairo需要重新编译,依赖freetype,不然编译pango会报错
meson _build --prefix=/home/gtbureau/project/pango-1.42.3/lib
cd _build
ninja
ninja install
编译pango成功!
------------------------------------------------------------------------------------------------------------------------------------------------------

PKG_CONFIG_PATH=/home/gtbureau/project/zlib-1.2.11/lib/lib/pkgconfig:/home/gtbureau/project/pcre-8.45/lib/lib/pkgconfig:/home/gtbureau/project/pixman-0.36.0/lib/lib/pkgconfig:/home/gtbureau/project/libpng-1.6.34/lib/lib/pkgconfig:/home/gtbureau/project/glib-2.58.3/lib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/util-linux-2.39.1/usrlib/lib/pkgconfig:/home/gtbureau/project/libffi-3.2.1/lib/lib/pkgconfig:/home/gtbureau/project/cairo-1.17.6/lib/lib/pkgconfig:/home/gtbureau/project/gobject-introspection-1.50.0/lib/lib/pkgconfig:/home/gtbureau/project/atk-2.30.0/lib/lib/x86_64-linux-gnu/pkgconfig:/home/gtbureau/project/gdk-pixbuf-2.40.0/lib/lib/x86_64-linux-gnu/pkgconfig:/home/gtbureau/project/freetype-2.13.1/lib/lib/pkgconfig:/home/gtbureau/project/fontconfig-2.14.2/lib/lib/pkgconfig:/home/gtbureau/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vegetablesssss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值