0
点赞
收藏
分享

微信扫一扫

Qt6在ubuntu中简单打包程序

芷兮离离 2022-04-15 阅读 90
linux

流程

  • 将Qt编译成Releaze程序
  • 配置依赖库的复制脚本
  • 配置启动文件
  • 配置相关插件
  • 测试

参考资料

  • 参考官网官网地址
  • 由于liunx版本众多,如在Ubuntu上打包的程序未必能在centos上运行,但可以在新Ubuntu目标机上执行
  • Liunx中Qt程序在不安装Qt环境下能成功运行需要如下文件
组件名文件名
可执行的程序xxx.o
可执行的脚本xxx.sh
工具插件plugins\libpnp_basictools.so
ExtraFilters插件plugins\libpnp_extrafilters.so
Qt xcb平台插件platforms\libqxcb.so
Qt Core模块libQt5Core.so.6
Qt GUI模块libQt5Gui.so.6
Qt QWidgers模块libQt5Widgets.so.6

操作流程

  • 说明: 下面提到xxx.,是自行定义文件名。

一、 将Qt编译成Releaze程序

将Qt应用程序编译成Releaze版本,在构建项目目录中找到可执行文件xxx.o,将可执行程序xxx.o复制到一个新建文件夹中。

二、配置依赖库的复制脚本

  1. 在新建文件夹中创建一个xxx.sh文件,在xxx.sh文件中填写如下代码,这是通过脚本拷贝该程序所需的库文件到当前文件夹中。
#! /bin/bash
EXE="xxx" #需要替换成你的可执行文件名
PWD="/root/service/" #替换成你当前新建文件夹得路径
files=`ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'`
cp $files $PWD
  1. 在当前目录下执行命令sudo chmod +x xxx.sh./xxx.sh。这时可以看到当前目录下已经出现所需的库文件,说明拷贝库文件成功。

三 、 配置启动文件

1.在当前目录下新建与可执行程序一样的名称xxx.sh文件,编辑内容如下代码:

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  #获取\和.sh之间的字符串
dirname=`dirname $0`
tmp="${dirname#?}"
#绝对路径
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"  #"$@" 脚本参数

2.执行命令sudo chmod +x xxx.sh将该文件改为可执行文件,打包基本完成,注意:在启动应用程序时,要启动与程序同名的xxx.sh文件
四、配置相关插件

  • 插件配置如下几种:
    • 使用qt.conf配置 (推荐使用这个,配置比较灵活)
    • 在项目中使用QApplication::addLibraryPath() or QApplication::setLibraryPaths()来指定插件的目录。
  • 重点介绍qt.conf配置
  1. 定义qt.conf文件可以改变QLibraryInfo类访问插件的路径。如果没有qt.confQLibraryInfo类按默认路径进行插件访问,这些路径在目标系统上不存在时,则无法访问。
  2. qt.conf文件有一个Paths组,其中包含对应于 QLibraryInfo::LibraryLocation枚举的每个值的条目。如下:
EntryDefault Value
PrefixQCoreApplication::applicationDirPath() #当前文件目录路径
Documentationdoc
Headersinclude
Librarieslib
LibraryExecutableslibexec on Unix, bin on Windows
Binariesbin
Pluginsplugins
Importsimports
Qml2Importsqml
ArchData.
Data.
Translationstranslations
Examplesexamples
Teststests
Settings.
  1. 配置qt.conf文件例子
[Paths]
Prefix = /root/service/ #这个需要修改你当前程序对应的目录
Plugins = plugins       #根据需要配置相关的文件信息
                        # 注意:=前面时对应的QLibraryInfo读取的标准组,=后面时我们需要修改的对应内容
  1. qt.conf文件中出现的配置内容文件复制到当前目录下即可。
  2. 配置的示意图:
    在这里插入图片描述

五、测试

  • 将配置好的项目文件夹发送到新目标机器上,进入当前目录下,修改xxx.o和xxx.sh为可执行文件启动./xxx.sh测试。
举报

相关推荐

0 条评论