我們使用Qt Creator編寫的exe程序,只能在本機運行,跑到別的電腦上就無法運行了,提示缺少各種各樣的庫,程序無法提供給用戶使用;今天我們來一起了解一下Qt程序的打包發佈流程和使用Inno Setup工具打包程序:(C++ Qt課程地址:https://edu.csdn.net/course/detail/7275)
一、設置程序圖標
應用程序的圖標分兩種:
a、 主窗口圖標,主要在程序運行時顯示在主窗口左上角,或在任務欄上顯示。
b、 運行程序圖標,一般在桌面或文件夾中顯示的縮略圖標,可以點擊後運行程序。
1、 設置主窗口圖標
首先在繪圖工具(例如Photoshop)中設計好圖標,圖標的分辨率最好大於3232。圖標需要用ico或*png的文件。如果想偷懶一點,直接去這裏(http://www.iconfinder.com/)下載,大量好看免費的圖標。
將剛纔的生成的圖標文件放到yourProjectFolder/Resources/images目錄下,或者任意一個程序可以找到的位置。最好將圖標文件添加到qrc中統一管理,qrc文件的格式如下:
<RCC>
<qresourceprefix="/background">
<filealias="mainlogo">christmas_stocking.png</file>
</qresource>
</RCC>
然後再主窗口中使用,代碼如下,代碼很簡單,不過記住這句代碼一定要放到Mainwindow的構造函數裏去,不然不會work。
setWindowIcon(QIcon(QStringLiteral(":/background/mainlogo")));
程序運行後的效果如下:
2. 設置運行程序的圖標
設置運行程序的圖標在各個平臺是各不相同的,下面分別介紹。首先準備分辨率最好大於3232的圖標文件。圖標需要用ico的文件。
使用qmake生成makefile文件或使用QT Creator IDE,那麼按下面三步實施:
第一步:創建一個包含圖標圖像的ICO文件,並將其保存在資源文件目錄下,例如命名爲:logo.ico;
第二步:創建一個.rc文件,QT Creator中Ctrl+N或 File - New File or Project,選擇General中的Text File,名稱填寫爲.rc文件(如applogo.rc),在裏面只用寫一行:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
第三步:在工程文件8_4STMP.pro文件中寫入如下內容:
RC_FILE = \
applogo.rc
再次編譯程序,即可達到效果,效果圖如下:
二、 編譯release版本
注意將運行程序編譯方式設置成Release,因爲debug版本的程序中包含了調試信息,可以用來調試。而真正要發佈程序時,要使用release版本,這樣可以減少發佈程序的體積同時增加軟件的安全。
三、 發佈程序
1、依賴庫
Windows開發環境下windeployqt工具 (如果你已經將Qt的bin目錄加入PATH環境,可以直接在命令行使用windeployqt調用.)。首先,將項目中的release文件中的可執行文件拷到一個新建的文件夾中,例如8_4STMP.exe,用Qt自帶的生成必備的dll文件的程序windeployqt,來把必要的動態庫拷到該文件夾中,打開命令行,輸入windeployqt 8_4STMP.exe,這時候大部分的dll文件都自動拷貝過來了,但是如果項目還用了一些其他的SDK,比如OpenCV,Chartdir51等等,就需要手動將所需dll拷貝過來,如果不知道還需要哪些軟件,可以用Dependency Walker來查看缺少哪些dll文件。
注意:如果發佈的應用是Qt Quick Application應用,那麼命令行需要加上QML的安裝目錄(windeployqt 8_4STMP.exe –qmldir)。命令中8_4STMP.exe是我的程序名稱,qmldir是qml目錄,這個目錄一般位於mingwXX目錄下,像我的目錄就在D:\Qt\5.9\mingw53_32\qml
2、打包發佈
上面我們把打包的腳本配置好了,我們需要打包是直接點擊RUN就可以進行打包了:
今天講解到現在結束了,想進行視頻學習的小夥伴,可以進入我的視頻教程進行學習,課程地址:https://edu.csdn.net/course/detail/7275,歡迎大家前來學習交流。