这几天写QT程序时遇到个问题,本机编译完成的应用程序的Gif正常显示,但移到其他机器上(ARM9)只有png能正常显示,gif和jpg却无法显示.刚开始以为是资源包的关系,然后以为是路径的关系,最后才发现是其实是插件的关系.
在Qt的目录下有plugins/imageformats这样一个目录,里面有libqgif.so,libqjpeg.so等(Windows下是qgif.dll,qjpeg4.dll等)动态链接库,当在安装过QT的 机器上,这些库能被成功指定调用,所以本机gif能正常显示,当是移到其他没有安装QT的机器时,因为找不到这些库文件,所以导致图片无法显示.
解决方案如下:
在应用程序目录下建立plugins/imageformats文件夹,将需要的图像支持插件拷贝进去,然后在程序源文件 main.cpp 的QApplication a(argc, argv);一行前添加如下代码QApplication::addLibraryPath("./plugins"); 最后看起来应该像这样:
int main(int argc, char *argv[])
{
QApplication::addLibraryPath("./plugins");
QApplication a(argc, argv);
QtAllTest w;
w.show();
return a.exec();
}
OK,搞定!!
【base:http://blog.youkuaiyun.com/limiko/archive/2010/05/09/5571957.aspx】