ubuntu下使用linuxdeployqt 打包qt程序

linuxdeployqt 打包qt程序

文章目录

  • linuxdeployqt 打包qt程序
    • @[toc]
    • 1、环境
    • 2、实现目标
    • 3、配置qt环境变量
    • 4、安装linuxdeployqt
    • 5、开始部署
    • 6、打包deb安装包

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

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拷贝依赖文件。

ubuntu下使用linuxdeployqt 打包qt程序_第1张图片

  • 到这一步就可以将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文件夹中;

ubuntu下使用linuxdeployqt 打包qt程序_第2张图片

ubuntu下使用linuxdeployqt 打包qt程序_第3张图片

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

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

ubuntu下使用linuxdeployqt 打包qt程序_第4张图片

  • 安装、卸载测试

ubuntu下使用linuxdeployqt 打包qt程序_第5张图片

你可能感兴趣的:(QT,linux,#,Qt开发经验,qt,ubuntu,linux)