QT之程序打包發佈

1.引言

QT開發完之後,如果直接把exe文件發給別人,是沒法直接用的,因為會提示缺少很多庫,一種方法是把這些庫拷貝出來,一起發過去,但是這樣不方便且文件很大,所以需要一種文件打包發佈的方法。

2.環境

1)QT 5.12.3版本,QT 4.x版本不行。

2)Enigma Virtual Box

enigmaprotector.com/en/downloads.html

QT之程序打包發佈

3.具體步驟

1)打開一個QT程序,以release方式運行一次。操作如下圖:

QT之程序打包發佈

2)這時你的工程項目文件夾下,會生成一個關於release的文件夾,打開關於release相關的文件夾,找到該目錄下release目錄下的.exe程序。此時你點擊是運行不成功的。因為缺少QT必要的庫文件。

QT之程序打包發佈

將這個.exe文件拷貝出來,創建一個單獨的文件夾,放在這個文件夾下,比如桌面的test文件夾裡。

QT之程序打包發佈

3)在開始菜單中,打開QT命令行窗口

QT之程序打包發佈

QT之程序打包發佈

接著輸入命令行,cd /d 路徑(指的是需要打包的exe程序目錄,就是剛才拷貝出來的exe程序所在的目錄),回車

cd /d C:/Users/wangwnexue/Desktop/test

QT之程序打包發佈

4)輸入如下命令行:windeployqt 程序名 敲擊回車。這一步操作是將所需的庫文件全都拷貝到exe程序的當前文件:

QT之程序打包發佈

QT之程序打包發佈

此時,在當前目錄下是可以點擊運行exe程序的,說明庫文件都已經拷貝到當前目錄下了。這時就可以執行將這一堆文件進行打包的操作了,需要使用Enigma Virtual Box工具。

5)打開運行Enigma Virtual Box

第一步選擇上述的exe文件

QT之程序打包發佈

第二步:添加路徑和文件如下圖。選擇所有文件後,注意是要所有文件和文件夾全部拖進。示意圖如下:

QT之程序打包發佈

QT之程序打包發佈

結果如下:

QT之程序打包發佈

第3步:點擊在【Files Options】中可以選擇是否將文件壓縮:

QT之程序打包發佈


第4步:最後點擊Process開始打包

QT之程序打包發佈

QT之程序打包發佈

生成testweb_boxed.exe就可以直接打開使用了。

4.問題總結

在實際操作過程中遇到了以下幾個問題

1) 提示windeployqt不是內部或外部命令

QT之程序打包發佈

原因是:一開始我電腦裡用的不是QT5.x版本,所以它是沒有的,裝了新版本的就有了。

2) 提示FaceImport.exe does not seem to be a Qt executable.

原因是:我裝了QT最新版本,但是編譯器用的還是老版本,需要改成最新的,就可以了。

QT之程序打包發佈


分享到:


相關文章: