其實如果直接在這里雙擊“chat.exe”也是會提示缺少的dll文件,然后在qt的安裝目錄找對應的dll文件,將dll復制到該目錄即可,dll在下面的路徑:(VS版本可能有點不一樣,不過都是bin目錄下的)
但是這樣我試過很多次,即使提示的dll都復制進來了,雙擊也可以運行了,可是放到其他電腦還是無法運行,這是因為依舊缺少文件,如plugins下的一些插件,因此這樣還是無法打包成功的。于是為了更加方便快捷的解決這個問題,我們使用qt自帶的windeployqt.exe尋找依賴的文件,我們使用批處理bat,在當前目錄(即編譯成release后的可執行程序所在目錄)新建個bat文件:
使用記事本打開或者其他編輯工具亦可,然后把下面的代碼復制進去保存;如果使用的msvc版本的:C:/Qt/Qt5.4.2/5.4/msvc2013_64/bin/windeployqt.exe myexe.exepause如果使用的是mingw版本的:C:/QT5/5.5/mingw492_32/bin/windeployqt.exe myexe.exepause代碼解析:C:/Qt/Qt5.4.2/5.4/msvc2013_64/bin/windeployqt.exe這個是windeployqt.exe工具的路徑,要根據自己的qt安裝情況進行修改,首先在這里看能不能找到windeployqt.exe,找到了直接把其路徑復制過來即可;myexe.exe則是你的可執行程序的名稱,不要照抄這里的。(3)上面步驟完成之后直接雙擊這個bat文件就會把需要用到的所有dll文件自動復制到當前目錄下:
很便捷。這個時候再去雙擊你的可執行程序應該就可以運行了。(4)接著就需要把這些文件打包成一個exe文件了,我們可以用Enigma Virtual Box這款軟件, 現在最新的版本已經是7.4了,百度一搜索就有,然后就開始添加文件打包了:
最后點擊“執行封包”就能生成一個exe文件,如圖示:
于是這個打包好的程序就可以放到其他電腦上運行啦。(5)如果有需要制作成安裝包程序可以使用Inno setup這款軟件制作安裝包,當然網上還有很多其他類似的,就需要大家自己去嘗試啦,制作安裝包的方法也是類似的,準備所需要的文件之后添加進去就可以了,網上很多這樣的教程,大家參考這篇博文:http://blog.csdn.net/ruifangcui7758/article/details/6662646。總結,我測試過很多次打包成exe在其他電腦上運行都是沒有問題的,但是在群里跟他人討論的時候他們說在某些情況還是會遇到問題,比如用到OpenGL庫,一些第三方庫如opencv等這樣打包運行時就會出問題,我估計是qt自帶的windeployqt.exe這款工具有些庫還是找不到的,尤其是外部的庫,也就是說還是有一定的局限性,當然這只是我的猜測,我現在還沒遇到,等遇到這種情況的時候我會再去尋找解決方法的,到時會繼續更新這篇博文。若有什么錯漏之處,歡迎大家指出,共同學習,一起進步啦!!新聞熱點
疑難解答