我有一台装有 Arch Linux 的新笔记本电脑,但无法tint2conf
以通常的方式启动 - 启动后,它会为每个发现的错误生成一堆错误.tint2rc
,例如:
(tint2conf:3813): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed snapshot NULL : tint2 -c '/home/setevoy/.config/tint2/MY-horizontal-dark-transparent.tint2rc' -s '/tmp/tint2-3813.jpg' 1>/dev/null 2>/dev/null
我已经gdk-pixbuf2
安装Imlib
在两个盒子上:
$ pacman -Q| grep 'gdk\|imlib'
gdk-pixbuf2 2.36.1+31+gecea71eb6-1
imlib 1.9.15-15
imlib2 1.4.9-1
tint2
在旧盒子上运行良好,我发现在新盒子上 - 它gdk-pixbuf2
根本不会使用库:
$ lsof -p 18020 | grep pix
tint2conf 18020 setevoy mem REG 254,0 686856 423644 /usr/lib/libpixman-1.so.0.34.0
tint2conf 18020 setevoy mem REG 254,0 159536 424850 /usr/lib/libgdk_pixbuf-2.0.so.0.3601.0
旧笔记本电脑的结果:
$ lsof -p 609 | grep pix
tint2conf 609 setevoy mem REG 254,0 23104 166360 /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so
tint2conf 609 setevoy mem REG 254,0 43560 166901 /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so
tint2conf 609 setevoy mem REG 254,0 686856 159763 /usr/lib/libpixman-1.so.0.34.0
tint2conf 609 setevoy mem REG 254,0 159536 166347 /usr/lib/libgdk_pixbuf-2.0.so.0.3601.0
这里可能出了什么问题?LD_LIBRARY_PATH
, 相似的东西?
Arch + Openbox + Tint2。
答案1
如果您在运行时使用动态模块进行编译gdk-pixbuf
,但无法在期望的位置找到所需的加载程序,则会出现此错误。如果您将 gdk-pixbuf 静态链接到您的应用程序但没有发送加载程序文件,则可能会发生这种情况。
最好的解决方案是重新编译 gdk-pixbuf,并将所有加载器嵌入到库中:
./configure --disable-modules --with-included-loaders=yes