Arch:tint2conf - gdk_pixbuf_get_width:断言“GDK_IS_PIXBUF(pixbuf)”失败

Arch:tint2conf - gdk_pixbuf_get_width:断言“GDK_IS_PIXBUF(pixbuf)”失败

我有一台装有 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

相关内容