在Windows下QT默認的不支持JPG,GIF等格式的圖片顯示。即使你編譯時加了-qt-libjpeg –qt-gif等選項也未必可以顯示出來(針對QT4.4以上版本的)。一般在EXE程序下將QT庫下的plugins\imageformats文件夾整個COPY過去即可,但COPY imageformats文件夾到EXE同一目錄后還是加載不了imageformats的dll文件,最后我碰碰運氣,把Microsoft.VC90.DebugCRT.manifest, msvcp90d.dll, msvcr90d.dll文件也COPY到imageformats下,運行,果然行了。雖然行了,但你運行Process Explorer看看EXE所加載的dll,它加載了兩個msvcp90d.dll。最后沒有用這種方法。
第二種方法:
另外的辦法是在編譯QT庫之前在插件的pro文件中加入
CONFIG-=embed_manifest_dll
http://hi.baidu.com/cyclone/blog/item/d77a86182fb915b84bedbc57.html
第三種方法:
還有另一種方法,這種方法是在QT庫編譯時沒有加CONFIG-=embed_manifest_dll時用,
在main函數里加入如下代碼:
然后把相應的DLL文件拷貝到EXE同一文件夾下,運行就可以了。