Linux 下使用 linuxdeployqt 打包QT程序

这篇具有很好参考价值的文章主要介绍了Linux 下使用 linuxdeployqt 打包QT程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当别人需要使用我们的 Qt 程序时,我们可以用打包工具将程序打包发给他,这样就不用发送整个 Qt 工程。由于Qt 跨平台的特性,可以用不同的工具打包它。本篇文章是在 Linux 下使用 linuxdeployqtQt 程序打包成 .AppImage 应用程序。

环境介绍:

  • Ubuntu 16.04
  • QT 5.12.12
  • linuxdeployqt(built on 2023-04-23)

注: 当我们把打包好的应用程序发给别人使用,可能会遇到 GLIBC库 版本过高的错误,也有很多办法,不过个人觉得使用低版本的 Linux 系统作为编译机这个方法简单点,而且兼容性好一点,所以我才使用 Ubuntu 16.04 这个版本作为编译机。

一. 安装 linuxdeployqt

直接从 Releases · probonopd/linuxdeployqt (github.com) 中下载编译好的 linuxdeployqt-continuous-x86_64.AppImage 应用程序文件。(从最新的版本开始下载,如果用不了可以降版本)
linuxdeployqt,linux,qt,运维,c++

下载好之后,执行下面命令(这里默认 Ubuntu 上已经配置了 Qt 环境)

chmod +x linuxdeployqt-continuous-x86_64.AppImage  # 赋予可执行权限
mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt  # 改名以便后面操作
./linuxdelpoyqt -version   # 查看是否安装成功,若输出版本信息表示安装成功。
(参数说明 机翻)
Usage: linuxdeployqt <app-binary|desktop file> [options]
Options:
-always-overwrite :即使目标文件存在,也复制文件。
-appimage :创建 AppImage (意味着 -bundle-non-qt-libs)。
-bundle-non-qt-libs :还捆绑非核心、非 Qt 库。
-exclude-libs=<list> :应排除的库列表,用逗号分隔。
-ignore-glob=<glob> :相对于 appdir 的 Glob 模式在何时忽略寻找库。
-executable=<path> :让给定的可执行文件使用已部署的库也
-extra-plugins=<list> :应该部署的额外插件列表,用逗号分隔。
-no-copy-copyright-files :跳过版权文件的部署。
-no-plugins :跳过插件部署。
-no-strip :不要在二进制文件上运行“strip”。
-no-translations :跳过翻译部署。
-qmake=<path> :要使用的 qmake 可执行文件。
-qmldir=<path> :扫描给定路径中的 QML 导入。
-qmlimport=<path> :将给定路径添加到 QML 模块搜索位置。
-show-exclude-libs :打印排除库列表。
-verbose=<0-3> :0 = 无输出,1 = 错误/警告(默认),2 = 正常,3 = 调试。
-updateinformation=<更新字符串>:嵌入更新信息STRING; 如果安装了zsyncmake,则生成zsync文件
-qtlibinfix=<infix> :如果您的 Qt 发行版有中缀,请调整 .so 搜索。
-version :打印版本信息。

linuxdeployqt,linux,qt,运维,c++

二. 打包成 .AppImage 应用程序

  1. 打开 Qt 使用 Release 模式构建源代码,然后编译。
    linuxdeployqt,linux,qt,运维,c++

  2. 找到 Release Build 的文件夹位置,然后将生成的可执行文件复制到另一个空文件夹下。
    linuxdeployqt,linux,qt,运维,c++
    linuxdeployqt,linux,qt,运维,c++

  3. 然后在文件夹下创建一个 .desktop 后缀的文件,这是桌面应用配置文件,在放一个图片用来当应用图标。
    (详细的 desktop 文件的编写可以参考官方描述 UnityLaunchersAndDesktopFiles - Community Help Wiki )

[Desktop Entry]
Type=Application
Name=这里填应用的名字
Comment=这里描述该程序功能
Exec=这里是可执行文件的路径。仅当可执行文件不在 $PATH 变量中指定的任何路径中时,才必须使用可执行文件的完整路径。例如,路径 /usr/bin 内的任何文件都不需要在 Exec 字段中指定其完整路径,而只需指定其文件名即可,或者在当前路径下也不用。
Icon=这里是应用图标。例如,目录 /usr/share/pixmaps 下的所有图标不需要指定其完整路径,但不需要指定不带扩展名的文件名。例如,如果图标文件是 /usr/share/pixmaps/wallch.png,则图标字段应该只是“wallch”。或者在当前路径下也不用。所有其他图标都应指定其完整路径。
Categories=Application;

linuxdeployqt,linux,qt,运维,c++
linuxdeployqt,linux,qt,运维,c++

完成以上工作,会有三个文件,然后执行下面命令:

~/Downloads/linuxdeployqt hello -appimage
# hello 是可执行文件的名字
# -appimage 是参数

出现下图内容表示打包成功
linuxdeployqt,linux,qt,运维,c++

创建完成后,除了上面三个自己创建的,其他的都是命令生成的,双击 .AppImage 后缀文件,即可运行,给别人使用也只需要把 .AppImage 后缀文件发过去即可。
linuxdeployqt,linux,qt,运维,c++
linuxdeployqt,linux,qt,运维,c++

如有其他问题,或者发现文章有错误,请在评论区留言
Keep learning!文章来源地址https://www.toymoban.com/news/detail-776873.html

到了这里,关于Linux 下使用 linuxdeployqt 打包QT程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下QT程序打包

            网上有关QT程序打包的教程大多都是Windows下的教程,有关Linux下QT程序打包的教程很少,而且大多说的不是很详细,在这里我整理了以下有关Linux下QT程序打包的方法,仅供大家参考学习,有关Windows下QT程序打包的方法可以看我另一篇博客“QT项目超详细打包教程。  

    2024年02月16日
    浏览(42)
  • Linux 打包Qt程序到无Qt环境Linux系统下运行,问题记录

    Linux 环境下Qt开发的摄像头程序用到了opencv的库,需要跟Qt环境一起打包。 1.打包所有关联库用的是脚本程序。 2.新建空文件夹放入编译好的release qt程序,比如摄像头程序 camera,新建打包脚本copylib.sh放在文件夹下。   3.终端执行 ./copylib.sh camera 会打包 camera程序所需的关联库。

    2024年02月16日
    浏览(44)
  • Qt Linux 环境中应用程序打包

    系统环境:Ubuntu20.04LTS 开发环境:Qt5.14.1 在进入程序部署打包之前,阅读官方的部署文档Deploy,通常情况下,我们在开发的时候,Qt Creator 的左下角构建模式为Debug,便于我们调试编写程序。Qt的三个构建模式Debug、Profile、Release的区别是: debug可以调试程序,而release不可以。在

    2024年02月01日
    浏览(43)
  • Linux下打包发布QT程序,并运行在其他没有安装QT环境的linux系统上

    一、Linux下打包发布步骤如下 编译应用程序环境:ubuntu18.04版本 开发环境:Qt5.14.2 编译环境:gcc_64 要移植的电脑:ubuntu18.04版本,没有开发环境 第一步:打包依赖库 1、创建一个打包目录,把生成的可执行文件拷贝放在创建的打包目录下,这里我是创建了一个打包目录名称为

    2024年02月12日
    浏览(40)
  • 银河麒麟下,QT5.12.10、linuxdeployqt安装及DEB打包教程

    2.1.1.将“打包工具.tar.gz”解压,里面有两个文件 linuxdeployqt libz.so 2.1.2.在解压当前目录下输入一下命令: sudo cp ./linuxdeployqt /usr/local/bin sudo rm /usr/lib/aarch64-linux-gnu/libz.so sudo cp ./libz.so /usr/lib/aarch64-linux-gnu sudo chmod +x /usr/local/bin/linuxdeployqt 2.1.3.验证打包工具安装成功命令: $linu

    2024年02月04日
    浏览(157)
  • 统信UOS系统开发笔记(七):在统信UOS系统上使用linuxdeployqt发布qt程序

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131411975 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门) 上一篇:《统信

    2024年02月11日
    浏览(50)
  • Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用

    程序示例精选 Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对Linux(Ubuntu)+Qt+C++与OpenCV窗体程序使用编写代码,代码整洁,规则,易读。 学习与应用推荐首选。 功能:Linux(Ubuntu)+Qt+C++与Ope

    2024年02月13日
    浏览(39)
  • 【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx +解决方式+自我尝试+记录】

    第一篇:使用linuxdeployqt软件生成 第二篇:桌面文件.desktop,文件编写与软件图标 第三篇:打包生成安装的包(.deb) 记得之前 学会了使用linuxdeployqt软件生成,打包,已经安装等各种细节,使用一个“test demo” 工程样例,来实现以及说明相关操作流程。但是后在使用的时候,

    2024年04月15日
    浏览(86)
  • 使用linuxdeploy-x86_64.AppImage打包QT应用程序的步骤

    使用AppImage打包名为irSync的QT应用程序的重新生成步骤 应用程序名为myApp  icon名为:logo.png 1.创建一个名为PacketAppDir的文件夹。 2.准备myApp.desktop文件,文件内容为: [Desktop Entry] Version=1.0 Type=Application Name=myApp Exec=myApp Icon=logo Categories=Utility; 3.准备脚本文件AppRun,内容如下 #!/bin/

    2024年02月08日
    浏览(54)
  • 启动QT Linux应用程序后黑屏闪烁?

    提问 问 4 年, 3 个月 前 修改于 3 个月前 点击833次 1 我将嵌入式Linux(imx6q)与eglfs一起使用。 帧缓冲在启动Qt应用程序时正在绘制黑屏。 简单的应用程序是黑色的1秒下。重度施用4~5秒。 这仅在首次 QT 运行时发生一次。 如何防止qt画成黑色?我可以修改内核或 QT 源。 我正

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包