qt windeployqt mysql_最简单的打包发布Qt应用(Windows,Linux)

这篇博客详细介绍了如何在Windows和Linux环境下打包发布Qt应用程序。对于Windows,步骤包括复制主程序和依赖,使用windeployqt工具,然后整体打包。在Linux上,需要复制主程序、插件和库文件,通过脚本获取依赖库,并将它们整合到目标系统。最后,创建桌面启动器并确保所有库文件完整,以实现应用的顺利运行。
摘要由CSDN通过智能技术生成

最简单的打包宣布Qt应用 (Windows,Linux)

8bf1ca355eba46a9495cf5ee20802f37.png

一、打包发布Windows 版Qt应用

1、把编译的应用 主法式(例如 myqtapp.exe) 复制 到 另一简单起名的文件夹,例如 c:\myapp

(把利用所需的SQLite等数据库也一同放入)

2、从Qt安装文件夹中复制对象windeployqt.exe 到 c:\myapp

(工具文件原地位可能是 C:\Qt\Qt5.8.0\5.8\mingw53_32\bin)

3、进入敕令提示符,并进入 文件 夹 c:\myapp

c:

cd myapp

4、然后使用 windeployqt 对象命令:

windeployqt myapp.exe

对象运行结束后,文件夹里看到 windeployqt 对象自动复制的插件文件夹和 dll文件、qm文件等.

5、把 c:\myapp 整个文件 打包,便是所需.

二、打包发布Linux 版Qt应用

1、把编译的应用 主法式(例如 myqtapp) 复制 到 另一简单起名的文件夹,例如 主目录下 ~/myapp

(把应用所需的SQLite等数据库也一同放入,或者放入法式代码指定的位置,例如 /var/opt内的位置,法式使用的普通图片,按代码指定也放入指定位置或 ~/myapp内,例如,我的是放在 ~/myapp/images)

2、程序必要用到的各个插件也从Qt安装目录中复制到主程序目录内

(例如在 /opt/Qt5.8.0/5.8/gcc_64/plugins ,我用到 platforms 、 sqldrivers 和 imageformats,其中 platforms我只用到 libqxcb.so,则platforms夹内需libqxcb.so一个文件即可,sqldrivers是SQLite,Mysql驱动,imageformats是图片调用必要)

3、复制必需的 库文件 ,先建立 脚本(cplib.sh),

vi ~/myapp/cplib.sh

内容是:

#!/bin/bash

LibDir=$PWD"/lib"

Target=$1

lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))

$(mkdir $LibDir)

for Variable in ${lib_array[@]}

do

cp "$Variable" $LibDir

done

终端下执行敕令:

cd ~/myapp

chmod +x cplib.sh

./cplib.sh myqtapp

完成后,可以见到在 ~/myapp目录内生成lib目录,内有主程序需用到的多个库文件,从中取出需要的部分,不需要全部文件

建立 ~\qtlib文件夹,从 ~/myapp/lib 内复制以下必须库文件:

libicudata.so.56、libicui18n.so.56、libicuuc.so.56、libQt5Core.so.5、libQt5DBus.so.5、libQt5Gui.so.5、libQt5Network.so.5、libQt5PrintSupport.so.5、libQt5SerialPort.so.5、libQt5Sql.so.5、libQt5Widgets.so.5件和文件名中包括xcb的全部文件,例如 libX11-xcb.so.1、libxcb.so.1等

(libQt5Network.so.5、libQt5PrintSupport.so.5、libQt5SerialPort.so.5、libQt5Sql.so.5这些是我的主法式使用,自动找到,如没有对应功能,则没有对应文件)

4.复制 libqxcb.so 必要的库文件

先把 cplib.sh 复制 一份 ,放入 ~/myapp/platforms,然后

cd ~/myapp/platforms

./cplib.sh libqxcb.so

完成后, ~/myapp/platforms目录内生成lib目录,内有libqxcb.so需用到的多个库文件,从中取出需要的部分,不需要全部文件,也是复制 到 ~\qtlib文件夹

libQt5DBus.so.5、libQt5XcbQpa.so.5、和文件名中包括xcb的全部文件.

5.目标机械安装 qtlib

把 qtlib 文件夹内容 放入 /usr/local/lib/qtlib

sudo权限 在/etc/ld.so.conf.d 下增长文件 usr-libs.conf

内容 是

/usr/local/lib/qtlib

然后 执行 sudo ldconfig

6.最后检查是否缺少 其他库文件,在终端下 运行 主法式

如没有 正常运行,会有失足信息提示,查看其中 的 库文件名 libXXXX.so.XX,在Qt的安装目录 中找文件

例如在:/opt/Qt5.8.0/5.8/gcc_64/lib

要注意的是区分所复制出来的文件不克不及是链接文件同,要找到真正的库文件,复制 到 /usr/local/lib/qtlib ,并重命名这库文件 在出错信息中显示的正确的文件名

从新执行 sudo ldconfig

重复 这第6步,直到能正常启动主程序,一般情况 下经过前面5步后,正常方式 执行应用(myqtapp)或应用启动器(myqtapp.desktop)后,没有正常显示出画面,才必要这第6步.

7. 最后, ~/myapp文件夹 就是 应用程序包括文件,一般安装放入 /opt/myapp内,有变动的文件安装一般放入/var/opt/myapp内,必需的Qt库文件一般安装放入 /usr/local/lib/qtapp(参照第5步),目标机器上就安装完成,最后,建立桌面启动器(其中 指定了 图标)

vi myqtapp.desktop

内容是

[Desktop Entry]

Version=1.0

Name=myqtapp

GenericName=myqtapp

Comment=myqtapp

Exec=/opt/myapp/myqtapp

Icon=/opt/myapp/images/myapp.ico

Terminal=false

Type=Application

Categories=Application;

StartupNotify=true

Terminal=false

X-Desktop-File-Install-Version=0.22

8.打包,安装 都实现了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值