日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

从零开始学Qt - 05:设置图标、打包发布以及精简体积的方法

發布時間:2024/9/19 综合教程 54 生活家
生活随笔 收集整理的這篇文章主要介紹了 从零开始学Qt - 05:设置图标、打包发布以及精简体积的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當我們用Qt Creator開發編譯完成一個程序后,通過點擊Qt Creator界面左下角的“運行(Run)”按鈕,能夠正常運行程序。但當我們找到編譯輸出目錄,想要雙擊exe文件直接運行程序時,會報丟失dll文件的系統錯誤[衰](如圖1)。這是由于程序運行所需的各種動態庫還沒有被包含進去。程序的打包發布就是將程序運行所必需的動態庫添加完整的過程。

另外,在沒有專門設置圖標前,剛開發的程序(如圖1中的例子samp1.exe)的圖標是一個簡單的命令行圖標,顯得不是很專業[捂臉],在程序發布之前最好替換成你想要的圖標。

圖1. 直接運行的系統錯誤

在本篇文章中,我們首先給程序設置一個圖標。編譯通過后,將程序運行所需的文件打包,以便你能把程序分享給別人或在其他電腦上運行。最后,打包后的文件體積有些大,我研究了一種能精簡體積的方法。

一、設置程序圖標

設置圖標的方法有多種,這里作為小白當然選擇一種最簡單的方法[呲牙]。

首先準備一個ico圖標文件。我在電腦上隨便找了一個音樂形狀的圖標文件,將其復制到項目源文件目錄中,并重命名為myico.ico,如圖2所示。

圖2. 準備圖標文件

在Qt Creator中打開項目文件,在“Edit”界面下,雙擊打開項目文件“samp1.pro”。在文件末尾,添加一行“RC_ICONS = myico.ico”(注意等號前后各有一個空格)。

圖3. 編輯項目文件添加圖標

重新編譯程序并運行。這時編譯輸出目錄中samp1.exe的圖標,以及程序運行界面左上角的圖標,都已經替換為我們想要的圖標了,如圖4所示。

圖4. 添加圖標后的結果

二、打包發布程序

為了打包發布程序,首先新建一個文件夾(這里我在Projects下新建了文件夾samp1_pack),然后將想要打包的samp1.exe文件復制到該文件夾中,如圖5所示。

圖5. 準備打包目錄

由于我的程序是用MinGW 64bit編譯器編譯的,因此在開始菜單中找到對應版本的Qt命令行工具(不能使用windows自帶的cmd),點擊運行。在命令界面,首先切換當前目錄到打包目錄(我的是D:\Qt\Projects\samp1_pack),然后運行打包命令“windeployqt samp1.exe”。

圖6. 運行打包命令

命令運行完成后,在資源管理器中打開打包目錄,發現除了原來的samp1.exe外,多出了很多dll文件和子目錄(除了translations外其余目錄中也是dll)。這些多出的東西基本都是動態鏈接庫。對于一個幾乎什么也不干的程序,打包后的體積約66MB,確實是不小了[捂臉]。

圖7. 打包命令運行的結果

三、精簡體積

Qt打包命令windeployqt比較全面的將動態庫包含進來,但其實有些庫是不需要的。想要精簡打包文件夾的體積,必須要知道哪些文件是運行所必須的。

在Windows系統中,可以通過一個免費小軟件Dependency Walker分析一下動態庫的關聯性。官網地址為:http://www.dependencywalker.com/。

打開Dependency Walker軟件,點擊左上角的“打開”按鈕,找到我們打包的exe文件,然后點擊“打開”按鈕。注意這時不要進行任何操作,軟件運行較慢(一動就顯示未響應[捂臉]),耐心等待結束即可。

圖8. 操作Dependency Walker軟件打開文件

在得到分析結果后(如圖9所示),我用紅框標注出了在打包文件夾內存在的dll文件,這些都是運行必須的動態庫。

圖9. 動態庫依賴性分析結果

將除了上面找到的dll文件以外其他的文件和文件夾全部刪除,嘗試運行程序,出現如圖10所示的運行錯誤[衰]。注意到“Qt platform plugin”的提示,表明誤刪了Qt平臺插件。于是將“platforms”文件夾恢復,之后程序終于能夠正常運行了[摳鼻]。圖11是精簡之后最終保留的所有文件。

圖10. 缺失平臺插件錯誤

圖11. 精簡后的結果

精簡之后打包文件夾的大小約30MB,約為原來的一半左右。將文件夾壓縮(RAR,最好),大小為8.8M,已經在可以接受的范圍了[捂臉]。

圖12. 精簡后的文件大小

總結一下,本文中我們主要學會了一種簡單的設置程序圖標的方法和使用windeployqt打包程序的方法。Qt打包的程序有些體積過大,因此基于Dependency Walker軟件研究了精簡體積的方法。

限于小白我的水平有限(總感覺越來越難了[捂臉]),本文有任何不對之處或者有更好的方法,請大家多多關注評論[贊]。

—————往期目錄——————

從零開始學Qt - 03:探索Qt的安裝目錄結構

從零開始學Qt - 02. 手把手教你下載和安裝Qt

從零開始學Qt - 01. 為什么學Qt

————————————————

總結

以上是生活随笔為你收集整理的从零开始学Qt - 05:设置图标、打包发布以及精简体积的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。