Qt5 專案程式打包發布 詳細教程

2022-06-14 07:57:10 字數 2885 閱讀 4821

當我們用qt寫好了乙個軟體,要把你的程式分享出去的時候,不可能把編譯的目錄拷貝給別人去執行。編譯好的程式應該是乙個主程式,加一些資源檔案,再加一些動態鏈結庫,高大上一些的還可以做乙個安裝檔案。

qt開發的程式發布的時候經常採用兩種方式:

靜態編譯:可生成單一的可執行檔案

動態編譯:需同時附上需要的dll檔案。

主視窗圖示:主要在程式執行時顯示在主視窗左上角,或在工作列上顯示。

執行程式圖示:一般在桌面或資料夾中顯示的縮圖標,可以點選後執行程式。

(2)將剛才的生成的圖示檔案放到yourprojectfolder/resources/images目錄下,或者任意乙個程式可以找到的位置。最好將圖示檔案新增到qrc中統一管理。

(3)然後再主視窗中使用,**如下,**很簡單,不過記住這句**一定要放到 **mainwindow **的建構函式裡去,不然不會work。

/*setwindowicon*/

setwindowicon(qicon(qstringliteral(":/background/mainlogo"))); //括號寫你自己實際路徑就好

程式執行後的效果如下:

如果你是使用qmake生成makefile檔案或使用qt creator ide,那麼按下面三步實施:

開啟rc檔案新增如下一行**。

最後在pro檔案新增一行**

儲存專案重新編譯,exe圖示和執行時window圖示都將發生變化。

注意將執行程式編譯方式設定成release,因為debug版本的程式中包含了除錯資訊,可以用來除錯。而真正要發布程式時,要使用release版本,這樣可以減少發布程式的體積同時增加軟體的安全。

上圖演示在qt creator中的設定方式,選中ide左邊的側邊欄的專案,然後再構建設定中將構建配置設定為release。

上圖演示在vs2015中的設定方式,選中ide右邊的解決方案管理器中的專案,然後在ide上邊的工具欄中將構建配置設定為release。

qt官方開發環境預設使用動態鏈結庫方式,在發布生成的可執行程式時,我們需要複製一大堆動態庫,如果自己去複製動態庫,很可能丟三落四,導致程式在別的電腦裡無法正常執行。 因此 qt 官方開發環境裡自帶了乙個部署工具來幫助開發者自動拷貝大部分的依賴庫。在不同的平台使用方式也有所不同。

windows開發環境下windeployqt工具 (如果你已經將qt的bin目錄加入path環境,那麼你可以直接在命令列使用windeployqt呼叫.)。

(1)將專案中的release檔案中的可執行檔案拷到乙個新建的資料夾中,例如project.exe,

(2)用qt自帶的生成必備的dll檔案的程式windeployqt,來把必要的動態庫拷到該資料夾中。

開啟命令列,輸入

windeployqt  project.exe
這時候大部分的dll檔案都自動拷貝過來了,但是如果專案還用了一些其他的sdk,比如opencv,chartdir51等等,就需要手動將所需dll拷貝過來,如果不知道還需要哪些軟體,可以用dependency walker來檢視缺少哪些dll檔案。

拷貝完成後資料夾下的檔案清單如下:

windeployqt hello.exe--qmldir d:\qt\qt5.5.1\qml
在x11平台下qt程式,首先準備好程式中需要使用的資源,庫和外掛程式...,比如你的可執行程式取名叫作panel,那把你的panel,那些libqt.so.4和libqt.so.4.6.0(鏈結和共享庫都要)放在同一目錄下(也可以不同,只要小小修改下shell檔案).plugins就不多說了。

在程式的同目錄下,新建一空文件,取名panel.sh (檔名與程式名同名,擴充套件名為sh,shell檔案)。在panel.sh中原封不動的寫入以下語句:

#!/bin/sh

dirname=`dirname$0`

tmp="$"

if ["$" != "/" ]; then

dirname=$pwd/$dirname

fi ld_library_path=$dirname

export ld_library_path

儲存檔案,退出。在終端給檔案+x屬性: 切換到程式的目錄,輸入

chmod +x panel.sh
然後執行shell檔案就行了(確保panel程式具備x屬性),它會自動更改環境變數,執行程式。

如果要除錯shell檔案,只需要在終端輸入:

sh -x panel.sh
這樣就 ok 了。

現在你就可以把現在的資料夾壓縮成乙個壓縮包,分享給你的朋友使用了!!

QT5程式對外發布

qt5程式對外發布 qt的應用程式必須用release構建。如果用的是mingw53 32就在qt的安裝目錄下的 mingw53 32資料夾下找到 windeployqt.exe d programfiles qt qt5.11.1 5.11.1 mingw53 32 bin windeployqt...

QT5發布exe程式

1 一般情況下,發布程式時使用release模式 2 將生成的exe檔案拷貝到單獨的資料夾,用windeployqt進行依賴庫的拷貝和對應目錄的生成 3 步驟2完成後若程式無法正常執行,可能有以下兩種提示資訊 1 提示缺少 dll庫,則找到對應的庫拷貝到該目錄下即可 2 提示程式無法正常啟動 0xc...

win7下QT5程式打包

pc端應用軟體程式的打包部署 本人親測,debug模式下的,對dll依賴多一點,但是沒有obj檔案,體積很大,乙個程式要100多兆,release模式下的打包會小很多,大概30多兆乙個程式,網上有另外一種方法可以減少體積,就是那個占用20兆的動態庫可以某種方式去掉.通常編譯生成 exe 應用程式不能...