ubuntu下使用linuxdeployqt 打包qt程序 原创

linuxdeployqt 打包qt程序

更多精彩内容
👉个人内容分类汇总 👈

1、环境

  • ubuntu18.04:当前版本的linuxdeployqt支持到18.04,更高版本需要自己修改源码编译。
  • linuxdeployqt:下载

2、实现目标

  • 在linux下使用linuxdeployqt拷贝qt编译程序的动态库、依赖文件;
  • 将可执行文件和动态库打包成deb安装包;
  • 通过dpkg安装、卸载打包的程序。

3、配置qt环境变量

  • 在ubuntu中安装完qt后,需要配置相关的环境变量,否则linuxdeployqt找不到依赖库;
gedit ~/.bashrc                            # 打开.bashrc

在.bashrc中添加qt环境变量
export PATH="/opt/Qt5.12.9/Tools/QtCreator/bin:$PATH"
export PATH="/opt/Qt5.12.9/Tools/QtCreator/lib:$PATH"
export PATH="/opt/Qt5.12.9/5.12.9/gcc_64/lib:$PATH"
export PATH="/opt/Qt5.12.9/5.12.9/gcc_64/bin:$PATH"
export PATH="/opt/Qt5.12.9/5.12.9/gcc_64/plugins:$PATH"
export PATH="/opt/Qt5.12.9/5.12.9/gcc_64/qml:$PATH"

# 关闭.bashrc后使用下列命令让配置的环境 变量生效
source .bashrc

4、安装linuxdeployqt

sudo chmod 777 linuxdeployqt-continuous-x86_64.AppImage              # 设置可执行权限
# 将下载的文件重命名,并移动到具有环境变量的路径下,这里我为了方便放在了qt的安装路径下
sudo mv linuxdeployqt-continuous-x86_64.AppImage /opt/Qt5.12.9/Tools/QtCreator/bin/linuxdeployqt   
  • 测试linuxdeployqt安装是否成功。

在这里插入图片描述

5、开始部署

  • 新建一个qt工程,编译生成可执行文件;
  • 创建一个文件夹(test,注意这个文件夹不能命名为bin),将可执行文件拷贝到test文件夹下;
  • 使用ldd 命令可查看程序的依赖,使用linuxdeployqt 程序名 -appimage拷贝依赖文件。

在这里插入图片描述

  • 到这一步就可以将test整个文件夹拷贝到其他linux中运行了。

6、打包deb安装包

  • 创建test(名称随意)文件夹;
  • 在test文件夹下创建DEBIAN文件夹;
    • 在DEBIAN文件夹下创建control文件、postinst文件、postrm文件(还有其他文件,如果需要自己查);
    • control:这个文件主要描述软件包的名称(Package),版本(Version),Installed-Size(大小),Maintainer(打包人和联系方式)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引;
    • postinst:负责安装完成时的配置工作,软件安装完后,执行该Shell脚本,一般用来配置软件执行环境,必须以“#!/bin/sh”为首行;
    • postrm:负责修改软件包链接或文件关联,或删除由它创建的文件。软件卸载后,执行该Shell脚本,一般作为清理收尾工作,必须以“#!/bin/sh”为首行
  • 在test文件夹下创建opt(安装路径,也可以是usr)文件夹;
    • 将部署好的可执行文件和依赖拷贝到test文件夹下的opt文件夹中;

在这里插入图片描述

在这里插入图片描述

  • 设置权限:sudo chmod -R 755 test,权限必须是755;

  • 使用dpkg -b ./ test.deb 命令将当前路径下的文件构建为test.deb安装包。

在这里插入图片描述

  • 安装、卸载测试

在这里插入图片描述

posted @   mahuifa  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示