对于这个问题发现了问题所在,提出了一个可用的烂补丁,给大家引出问题所在,抛转引玉,希望大家给出一个更加完美的解决方案。
在交叉编译gdk-pixbuf时可能会在配置时没有问题,但是在Make时出现如下错误提示:
No rule to make target '../gdk-pixbuf/loaders.cache',needed by 'gdk-pikbuf-thumnailer.thumnailer. Stop
经过查找一些资料,发现这个文件是一个用来记录可用的动态加载模块的缓存文件,由gdk-pixbuf-query-loaders生成的。生成后由gdk-pixbuf-thumnailer使用,相当于gdk-pixbuf-thumnailer的配置文件,跟据这个文件生成供其他应用程序使用的缩略图。相关资料:
最接近真相的是GNOME提供的资料。但这里只介绍了这个文件是怎么来的,没有介绍有什么用途。
然后在一个gdk-pixbuf的下载网站找到了产生者和使用者的用途:
经过一系列的研究发现是在Make时先生成了这两个可执行文件,但是由于是交叉编译,自己的电脑无法使用这两个可执行文件尽心模块信息的收集,生成缩略图。或者是由于生成的那些动态加载模块自己电脑也无法执行无法检测是否可用。或者两者皆有。
解决办法:在库的解压目录下的gdk-pixbuf目录下建一个空的loaders.cache文件。相当于没有收集到可用的动态加载模块信息,自然不会执行gdk-thumnailer去生成缩略图。可以完成编译。
这个问题应当出现在交叉编译时,正常的自己电脑上安装这个库应该不会出问题。至于为什么要在编译阶段就收集模块信息生成缩略图暂时不知。