参见:使用linuxdeployqt在linux下进行Qt打包发布(超详细) - 灰信网(软件开发博客聚合) (freesion.com)
一、pro配置
QMAKE_LFLAGS += -no-pie#支持双击打开exe。这时候就不需要脚本。直接双击就可以打开exe了
CONFIG(debug, debug|release): {
} else:CONFIG(release, debug|release):{
LIBS += -Wl,-rpath=./lib#这是寻找库的路径。
}
二、linuxdeployqt 编译打包
linuxdeployqt源码编译打包请自行百度。
最终打包下来回是这样子
default.desktop是默认创建的快捷方式。qt.conf是qt环境配置文件。至此 直接双击exe应该是可以运行的。
三、deb打包
主要是DEBIAN文件夹:里面创建三个文件:control postinst postrm文件。
control:
Package: Vultasound
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends:
Installed-Size: 512
Maintainer: 123@163.com
Description: my test package
postinst:
#!/bin/sh
cp /opt/VUltPlatform/default.desktop /usr/share/applications/
des="/home/${SUDO_USER}/Desktop"
if [ ! -d "/home/${SUDO_USER}/桌面" ]
then
des="/home/${SUDO_USER}/Desktop"
else
des="/home/${SUDO_USER}/桌面"
fi
echo "创建桌面快捷方式"
cp /opt/VUltPlatform/default.desktop "$des"
chmod +x ${des}/default.desktop
#cp /opt/VUltPlatform/default.desktop /home/${SUDO_USER}/Desktop/
#chmod +x /home/${SUDO_USER}/Desktop/default.desktop
postrm:
#!/bin/sh
rm /usr/share/applications/default.desktop
filename=/home/${SUDO_USER}/Desktop/default.desktop
if [ -f ${filename} ]
then
rm ${filename}
else
rm /home/${SUDO_USER}/桌面/default.desktop
fi
exit 0
四、快捷方式运行
安装成功后快捷方式是不能运行的。需要另外配置。原因是找不到相关库环境
需要写一个执行脚本
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname/lib #lib就是linuxdeployqt打包后里面的lib
export LD_LIBRARY_PATH
$dirname/$appname "$@"
这样*.desktop里面直接配置脚本绝对路径即可。
五、相关命令
dpkg -b . ../output/VUltasound_amd64_v1.0.deb //打包
sudo dpkg -i VUltasound_amd64_v1.0.deb //安装
sudo apt remove vultasound //卸载