652
技術社區[雲棲]
QT的插件機製在程序發布時易出現的問題
qt中對各種格式的圖片、數據庫、字符編碼等都是以插件的機製運行的,使用動態QT庫時,在運行時程序會在需要時到指定的文件夾中加載這些插件的DLL,QT中默認為是在QTDIR/4.2.2/PLUGIN中,所以經常在發布程序時,如果機器上沒有裝過QT,程序會找不到這個文件夾,也就無法使用這些插件,解決辦法是:在程序中加入你能找到的一個文件路徑,然後把相應插件的文件夾(如imageformats、codecs等)加入到這個路徑,通常將你的程序路徑設為這個路徑,可在程序開始調用qApp->addLibraryPath(qApp->applicationDirPath ()+"/plugins");即可,這樣發布時隻需聯通將這些插件放置在這裏即可
另一種方法是編靜態庫,然後在程序中用Q_IMPORT_PLUGIN()來導入,即可靜態編譯,不需一起攜帶這些dll
最後更新:2017-04-02 00:06:42