目的:debug方式编译依赖的文件会多一些,同时文件大小还会很大。
Notice: 所有操作都是在当前用户下,如果是root账户,需要注意加上sudo,否则会因为权限问题提取依赖文件失败。
gary@gary-host:~$ mkdir QtAppDeploy
#!/bin/sh
exe="yourdemoname" #你需要发布的程序名称
des="/home/gary/QtAppDeploy" #创建文件夹的位置
deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
cp $deplist $des
#!/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
export LD_LIBRARY_PATH
$dirname/$appname "$@"
chmod +x ldd_copy.sh
chmod +x yourdemoname.sh
$ cp ./ldd_copy.sh home/gary/yourprojectname/build-yourdemoname-Desktop_Qt_5_15_2_GCC_64bit-Release
$ ./ldd_copy.sh yourdemoname
$/home/gary/Qt/5.15.2/gcc_64/plugins/platforms
exe="libqxcb.so"
执行脚本,将会把xcb依赖库拷贝到你的QtAppDeploy目录下
将整个platforms文件夹复制目录QtAppDeploy中,即在QtAppDeploy目录下多一个platforms文件夹
$/home/gary/Qt/5.15.2/gcc_64/plugins# ls
imageformats、platforminputcontexts
$/home/gary/Qt/5.15.2/gcc_64/plugins#cp imageformats platformimputcontexts /home/gary/QtAppDeploy -ar
在创建的QtAppDeploy目录下,运行yourdemoname.sh, 就可以看到yourdemoapp应用程序运行起来了, cheers~~
$QtAppDeploy# ./yourdemoname.sh
Ubuntu22.4的桌面图标在/usr/share/applications中,在改目录下创建“双击启动应用程序”的脚本如下:(更多介绍可以参考目录下自带的桌面启动程序的脚本,以葫芦画瓢)
$/usr/share/applications# sudo vim yourdemoname.desktop
[Desktop Entry]
Version=4.0
Type=Application
Name= TestXX #程序在桌面的名称,可以随便写
Comment=QT Create #注释,可以随便写
Exec=/home/gary/QtAppDeploy/yourdemoname.sh %F #应用程序的路径
Icon=/home/gary/QtAppDeploy/yourdemo.png #桌面应用程序图标
Terminal=false
StartupNotify=true
Categories=Application
最后使用ubuntu22.04的文件管理器gedit打开/usr/share/applications,然后右击刚才创建的yourdemoname.desktop,选择“Copy to…",将她复制到桌面目录(/home/gary/Desktop)即可,然后在Ubuntu22.04的桌面双击即可打开应用程序。