這幾天寫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,搞定!!