Qt使用windeployqt工具進行打包
在了解如何打包之前先討論一下qt的打包環境
1、debug和release的選擇
對于qt-creator來說,debug最大的優勢在于方便除錯,但是隨之而來的便是巨大記憶體的庫加載,對于現代的電腦來說一兩個G的占用并不算大,所以在代碼只需要在自己電腦上面運行和供于學習來說無可厚非,
但是當我們想要將寫好的代碼發送給顧客,而發送者的電腦上又沒有qt的運行環境,這個時候打包成為必不可少的步驟
對于打包來說,debug版本比release版本的記憶體大十倍不止,所以如果有想打包操作的話,最好是一開始就選擇release進行打包
2、對于目標機上有qt的運行環境(環境變數里面有qt的bin目錄的話)
環境變數可以在控制面板->系統和安全->系統->高級系統設定->環境變數->path里面添加qt的bin目錄,一般在mingw里面,
在qt-creator或者vs里構建了某個程式,如果是debug版本的就會在放置的檔案目錄下生成build-xxx-debug檔案夾,如果運行程式后里面會出現一個xxx.exe的可執行檔案如下圖:

可以直接復制該exe檔案發送,能夠在任何擁有qt環境的主機或者開發板上面運行(可以大膽的分享我們的代碼成果!)
目標沒有qt的運行環境
我做了一個很好玩很有趣的游戲,我現在想分享給我心儀的女生,怎么辦?
總不能跑過去給她電腦上面裝一個qt吧,你行你上我反正不行,游戲里面做了很多表達心意的東西,我就想讓她一打開就能運行,那么正事開始了
1、選用release
在創建工程的時候就可以選擇,勾上Release,debug最好也勾上,方便除錯

選好后進去編好程式,運行的時候當然可以拿debug進行除錯,等除錯沒問題后,在左邊專案選項里面的構建設定添加一個release版本的,再構建一次,就會再作業目錄里面生成另外一個build-xxx-release的檔案夾,
我們所操作的就是該檔案夾,

2、使用Qt xxx for DeskTop(xxx是版本號)
做好上面的之后就可以利用官方工具windeployqt來進行打包了(當然有別的方法,感興趣的可以多查查資料),
windeployqt是qt自帶的exe檔案,可以在作業目錄里面找到,但是本文建議在qt自帶的cmd里面操作,也就是qt xxx for DeskTop(不要用win + R 打開的cmd),windows自帶的cmd打包后會損失很多鏈接庫,造成打包后目標打不開的情況,
【1】打開qt for desktop,轉到要打包的build-xxx-release目錄,和windows自帶的cmd使用方式一樣,

【2】輸入F:到F盤,或者用cd F命令也是一樣的,到qt的作業目錄下(創建qt程式的時候自己指定的目錄),再進入build-xxx-release目錄里面,輸入windeployqt xxx.exe,就會加載所有的依賴檔案和翻譯檔案(注:xxx.exe必須是存在的檔案名也就是目標可執行檔案),

出現上圖情況后,就說明打包已經完成了,這個時候將build-xxx.release檔案里面的整個release檔案夾里面的exe檔案就能夠在沒有qt環境的電腦上面運行了,
3、將整個release檔案夾打包

如果能力很強的話可以嘗試使用NSIS(Nullsoft Scriptable InstallSystem)軟體對該檔案夾壓縮后進行程式的封裝,不進行封裝也行,將該release檔案夾壓縮發出去,只要下載了整個檔案夾,打開里面的exe檔案,就能在沒有qt運行環境的機器上面運行了,
<補充說明一下,測驗打包程式是否成功,最好是在一臺沒有安裝qt運行環境的電腦上測驗,自己的電腦就算打包后缺少某些依賴檔案也可能成功運行,因為你的環境變數已經設定好了,qt會進行庫的共享!>
本文只能做一篇建議文章,如果有需要改進的地方,歡迎指出,一起討論,一起進步!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248511.html
標籤:其他
下一篇:貪吃蛇C語言
