GTK4.5、demo
官网提示的安装的依赖比较多,但是上面的包我不是全部都安装的,只是安装了一部分,能满足编译出来看个效果而已。
完全状态的GTK有若干依赖项,meson在执行的时候可能针对有无依赖选择性地编译了某些功能。我没有一个一个功能去尝试,大概能用的安装的。我安装到目录/home/az13js/opt/gtk4
,/home/az13js
是我电脑用户的目录。
下面的Shell语句在安装前放在~/.bashrc
的结尾,目的是添加/home/az13js/opt/gtk4
里面的bin,lib64和pkgconfig到环境变量。因为安装过程中meson工具需要判断系统有无特定的依赖,我本地自己搭建的apt仓库版本又不够新,虽然meson自己会用我电脑上的git克隆所需的依赖的地址,遗憾的是克隆又总是失败,所以不得已需要这么做。其中lib64这个目录在不同的系统可能不一样,有的系统可能是lib没有64。
TEMP_PATH_STRING="/home/az13js/opt/gtk4/lib64"
if [ -z "$LD_LIBRARY_PATH" ];then
export LD_LIBRARY_PATH="$TEMP_PATH_STRING"
else
export LD_LIBRARY_PATH="$TEMP_PATH_STRING:$LD_LIBRARY_PATH"
fi
TEMP_PATH_STRING="/home/az13js/opt/gtk4/lib64/pkgconfig"
if [ -z "$PKG_CONFIG_PATH" ];then
export PKG_CONFIG_PATH="$TEMP_PATH_STRING"
else
export PKG_CONFIG_PATH="$TEMP_PATH_STRING:$PKG_CONFIG_PATH"
fi
unset TEMP_PATH_STRING
if [ -z "$PATH" ];then
export PATH="/home/az13js/opt/gtk4/bin"
else
export PATH="/home/az13js/opt/gtk4/bin:$PATH"
fi
另外,下面的ninja -C builddir -j 4
是指定4个工作进程还是线程去运行,电脑8核心的话当然换成ninja -C builddir -j 8
会更快,默认的ninja -C builddir
是单进程的,编译速度有点慢。
更新meson
因为版本太低的话,后面安装会失败。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -U meson
我另一台电脑上的版本是0.56.2,这个版本编译起来就不报错了。所以至少需要到0.56.2版本。
ninja
我用的apt仓库里面的版本1.10.0就能满足需要了。
安装glib-2.70.1
meson setup builddir --buildtype release --prefix /home/az13js/opt/gtk4
ninja -C builddir -j 4
meson install -C builddir
安装gobject-introspection-1.70.0
注意这里需要Python的共享对象库和开发头文件,我电脑上安装的是python3.9-minimal,对应的需要安装python3.9-dev。需要程序flex,bison。我本地用apt安装:
apt install python3.9-dev flex bison
meson setup builddir --buildtype release --prefix /home/az13js/opt/gtk4
ninja -C builddir -j 4
meson install -C builddir
安装gdk-pixbuf-2.42.6
meson setup builddir --buildtype release --prefix /home/az13js/opt/gtk4
ninja -C builddir -j 4
meson install -C builddir
安装pango-1.49.2
meson setup builddir --buildtype release --prefix /home/az13js/opt/gtk4
ninja -C builddir -j 4
meson install -C builddir
安装gtk-4.5.0
经过尝试,只是随便安装GTK就行的话到了这里用下面的方式就能装好GTK了,别的依赖后面需要再说。
安装过程,需要libtiff
,否则就会:
Downloading libtiff source from http://download.osgeo.org/libtiff/tiff-4.1.0.tar.gz
国外的网站速度比较慢,用apt安装也能用。apt仓库的版本:
libtiff-dev/stable 4.2.0-1 amd64
Tag Image File Format library (TIFF), development files
安装apt install libtiff-dev
。
meson setup builddir --buildtype release --prefix /home/az13js/opt/gtk4 -Dwayland-backend=false -Dmedia-gstreamer=disabled
ninja -C builddir -j 4
meson install -C builddir
中间如果需要git克隆东西的,失败也没有影响编译,中间提示No package 'graphene-gobject-1.0' found
但是无所谓。所以不希望中间联网下载额外的东西的只要断网就行了。
demo
运行gtk4-demo命令可以打开:
左侧菜单是各种组件和一些效果。和图形相关的比如查看这转动的齿轮:
一些即时演算的动画等: