当前位置: 首页 > news >正文

Ubuntu22.04下打包发布Qt5.15应用程序的方法

Qt应用编译时选择release方式编译

目的:debug方式编译依赖的文件会多一些,同时文件大小还会很大。

Notice: 所有操作都是在当前用户下,如果是root账户,需要注意加上sudo,否则会因为权限问题提取依赖文件失败。

准备

  • 在Ubuntu当前用户目录下创建一个目录
gary@gary-host:~$ mkdir QtAppDeploy
  • 创建脚本ldd_copy.sh,用于拷贝应用的关联文件
#!/bin/sh 
exe="yourdemoname" #你需要发布的程序名称 
des="/home/gary/QtAppDeploy" #创建文件夹的位置 
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') 
cp $deplist $des
  • 创建运行脚本yourdemoname.sh,最终用来运行你的应用程序
#!/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

提取依赖包

提取应用程序的依赖包
  • 将ldd_copy.sh复制到应用程序的编译目录下:
$ cp ./ldd_copy.sh home/gary/yourprojectname/build-yourdemoname-Desktop_Qt_5_15_2_GCC_64bit-Release
  • 执行脚本提取依赖包到QtAppDeploy
$ ./ldd_copy.sh yourdemoname
提取QT platform平台xcb的依赖库文件
  • 将上面的ldd_copy.sh复制到QT的安装目录下的plugins/platforms,比如:
$/home/gary/Qt/5.15.2/gcc_64/plugins/platforms
  • 将脚本里的exe=“yourdemoname” 改为如下:
exe="libqxcb.so" 
  • 执行脚本,将会把xcb依赖库拷贝到你的QtAppDeploy目录下

  • 将整个platforms文件夹复制目录QtAppDeploy中,即在QtAppDeploy目录下多一个platforms文件夹

提取其他需要的依赖文件
  • 支持不同格式图片的库文件
  • 支持中文输入的库文件
    将下面两个插件对应的文件夹复制到QtAppDeploy目录下:
$/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的桌面双击即可打开应用程序。

http://www.lryc.cn/news/246200.html

相关文章:

  • 初级JVM
  • MySQL数据库 编程入门
  • 6.golang函数
  • 软件可靠性测试常见的方法
  • C/C++字节对齐
  • 【Android知识笔记】性能优化专题(四)
  • DC电源模块的散热措施
  • uniapp H5、小程序、APP端自定义不同运行环境(开发、测试、生产)、自定义条件编译平台、以及动态修改manifest.json值讲解
  • centos 显卡驱动安装(chatglm2大模型安装步骤一)
  • 05_属性描述符
  • vue day2
  • 四川劳动保障杂志社四川劳动保障编辑部四川劳动保障杂志2023年第10期目录
  • python数据类型
  • 大数据-之LibrA数据库系统告警处理(ALM-37004 Datanode主备不同步或者断连)
  • 带你用uniapp从零开发一个仿小米商场_2.创建空白项目及公共样式引入
  • 1144. 连接格点,Kruskal算法,二维矩阵压缩为一维
  • C++ : 友元(未完结)
  • Nginx 服务器 SSL 证书安装部署
  • GC9118S低压 5V 全桥驱动芯片,内置过温保护,低电流睡眠模式,可替代TMI8118
  • windows dockerdesktop 安装sqlserver2022
  • 在ubuntu系统安装SVN服务端,并通过客户端进行远程访问
  • STL函数对象-C++
  • Ubuntu 设置Nginx开机自启
  • npm中的npx命令
  • python绘制Z形图 青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析2023年5月
  • conda环境下module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘
  • 蓝桥杯每日一题2023.11.26
  • Centos 7.9 Install Docker Insecure Registry
  • 探秘网络通信:UDP与TCP/IP的奥秘
  • Docker的学习笔记