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/

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

2373

被折叠的 条评论
为什么被折叠?



