在Qt的使用過程中,我們會發(fā)現(xiàn)Qt的的執(zhí)行文件在Qt的IDE中是可以直接Build出來并執(zhí)行產生效果的,但是如果直接在編譯文件夾下找到該執(zhí)行文件運行或是要提供給第三方人員使用的時候,執(zhí)行文件卻不能直接使用,會有各式各樣的庫文件缺失等問題,以下是Qt在Windows與linux環(huán)境下的執(zhí)行文件打包流程。
Windows
工具需要
1 windeployqt(Qt自帶,無需安裝)
2 Enigma Virtual Box(需下載安裝)
處理流程
1 通過Qt Creator編譯出執(zhí)行文件
2 在執(zhí)行路徑下找到編譯出的執(zhí)行文件
3 將執(zhí)行文件拷貝到一個空文件夾中
4 通過Windows開始菜單找到Qt5.x.x for DeskTop(MinGw)并運行

5 在Qt的命令行中跳轉至之前exe拷貝到的文件夾路徑
6 輸入命令 :
windeployqt 程序名
- 至此,經(jīng)過
windeployqt將執(zhí)行文件所需的所有庫文件都拷貝至執(zhí)行文件路徑,執(zhí)行文件已經(jīng)可以正常運行,接下來只要將庫文件包括執(zhí)行文件一起封裝打包即可。
7 運行Enigma Virtual Box并選擇執(zhí)行文件導入
8 將庫文件添加到打包文件中
9 點擊Process按鈕
10run測試運行打包出來的執(zhí)行文件,close關閉
11 至此,打包出的執(zhí)行文件就是可以完全脫離環(huán)境依賴運行的程序,可以發(fā)給第三方人員使用
Linux
工具需要
shell腳本收集執(zhí)行文件相關庫文件:
#!/bin/bash
/*asa server為目標執(zhí)行文件*/
LibDir=$PWD"/lib"
$(mkdir $LibDir)
lib_list=`ldd asaServer | awk '{print $3}'`
for var in $lib_list
do
cp $var $LibDir
done
處理流程
與Windows基本一致
