Qt文件打包
Windows打包
- 首先我們是生成
Release
離線文件
image
- 找到項目文件夾下生成的exe文件,如我的是
MarkdownPic.exe
,將該exe文件復(fù)制到一個新的文件夾,比如我將其復(fù)制到C:\Users\13612\Dropbox\HMP
目錄下
image
image
- 開始菜單搜索
qt
,然后找到Qt 5.11.0 for Desktop
,打開運行,如下圖
image
-
cd
到C:\Users\13612\Dropbox\HMP
目錄
ps:windows下,要先使用
C:
,切換到C盤,然后才能cd
到C盤的子目錄
image
- 然后執(zhí)行如下命令進行打包
windeployqt MarkdownPic.exe
image
然后就可以看到如下效果,當(dāng)然,如果你沒有使用第三方的庫,這個時候,你可以直接雙擊MarkdownPic.exe
運行了,如果你使用了第三方的庫,運行的時候會提示你缺少一些庫文件,缺啥補啥就行
image
比如我使用了七牛云,就會出現(xiàn)如下的提示
image
將dll
全部復(fù)制到HMP
目錄下,就可以正常運行了
image
- 接下來就是程序發(fā)布階段,我使用的是Enigma Virtual Box,它可以將所有東西壓縮到一個文件里面.操作如下
(1)Browse
->要打包程序
,這里是MarkdownPic.exe
image
(2) 將HMP
目錄下所有文件拖動到Enigma Virtual Box上,拖完后會彈框,選擇OK
即可,如下圖
image
image
image
(3) 選擇Files Options
->勾選Compress Files
image
(4) 點擊Process
開始
image
image
(5) 打包完成,如下圖,程序打包成了MarkdownPic_boxed.exe
,可以拿這個exe去發(fā)布了,其他的文件都沒有用了.
image
Linux打包成Appimage
- Release模式下生成離線文件
image
image
將其復(fù)制到一個空文件夾透且,這里是
fabuHMP
,然后cd
到fabuHMP
下-
使用
ldd
命令查看依賴庫,發(fā)現(xiàn)有一個libqiniu.so
不是系統(tǒng)自帶的庫系冗,是第三方庫,因此ldd
命令在系統(tǒng)庫那里找不到莺戒,需要添加環(huán)境變量祷蝌,命令如下
image
# 用法如下:
export LD_LIBRARY_PATH=/Path/To/Lib:$LD_LIBRARY_PATH
# 我的是如下
export LD_LIBRARY_PATH=/home/hua/Dropbox/MarkdownPic/MarkdownPic-linux:$LD_LIBRARY_PATH
此時再執(zhí)行ldd MarkdownPic
,發(fā)現(xiàn)可以找到libqiniu.so
庫了
image
- 下一步的操作是將所有的依賴庫都復(fù)制到
fabuHMP
目錄下秉颗,一個個復(fù)制粘貼太復(fù)雜,因此送矩,需要用到shell腳本蚕甥,如下
#!/bin/bash
exe="MarkdownPic" # 發(fā)布的程序名稱
des="/home/hua/fabuHMP" # 你的發(fā)布程序存放路徑
# 將 /home/hua/Dropbox/MarkdownPic/MarkdownPic-linux 替換成第三方庫所在位置
export LD_LIBRARY_PATH=/home/hua/Dropbox/MarkdownPic/MarkdownPic-linux:$LD_LIBRARY_PATH
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
這時候,所以的依賴庫都復(fù)制到fabuHMP
目錄下了
image
- 添加
qmake
環(huán)境,編輯.bashrc
文件
gedit ~/.bashrc`
在最后添加如下代碼
#add QT ENV
export PATH=/home/hua/Qt5.11.1/5.11.1/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/hua/Dropbox/MarkdownPic/MarkdownPic-linux:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/hua/Qt5.11.1/5.11.1/gcc_64/plugins:$QT_PLUGIN_PATH
重新打開一個終端栋荸,運行qmake -v
,可以看到如下圖則成功
image
- 下載
linuxdeployqt
打開下載linuxdeployqt
image
重命名為 linuxdeployqt
,并賦予可執(zhí)行權(quán)限
sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt
chmod +x linuxdeployqt
移動到目錄 /usr/bin
sudo mv linuxdeployqt /usr/bin
這時候終端執(zhí)行linuxdeployqt
可看到用法
image
- 執(zhí)行如下命令即可打包成一個
appiamge
菇怀,將該文件拷貝給其他人即可
linuxdeployqt MarkdownPic -appimage
image
image
image