• QT程序打包


    1.须知

    自用,不能保完全适合你的需求

    只适用简单的QT工程

    1.标准qmake工程,一些cmake工程不能保证适用

    2.不涉及太多第三方库,linuxdeployqt不能递归拷贝库文件,如果打包完运行显示缺少库,可以手动把缺少的库拷进来

    ldd命令可以查看你的程序需要哪些库文件,再对比打包完告知缺少的,找到库文件进行拷贝,注意一点:拷贝的时候分清你拷的是链接文件还是正真的库文件(看颜色或者属性)

    环境:Ubuntu18.04

     QT版本:5.14

    使用工具:linuxdeployqt

    2.准备工作

            确保QT环境变量正确,即linuxdeployqt可以通过环境变量找到qt的库文件

            下载编译安装linuxdeployqt,有的文章说linuxdeployqt不支持1804版本,需要修改编译脚本。自己去看了编译脚本,现在应该不存在这个问题。

    下载参考:

    Linux下使用linuxdeployqt发布Qt程序-CSDN博客

    注:上面这个文章打包步骤是:1拷贝程序2直接执行打包命令3修改.desktop4.给权限5点击.desktop执行  很多文章也是用这个步骤,但是我试玩都不行(可能是我的问题) 

    3.步骤

     1.准备好可执行文件

    1.Qtcreator中使用release编译

    找到执行文件

    2.构建目录

    1.新建一个文件夹,执行文件复制进去;新建一个文本文件default.desktop(名字随意,要以.desktop结尾),放一个图标文件进去作为图标(这里我按其他文章打包出来图标没有变成我修改的,有懂的请教一下原因)

    可参考的命令:

    1. mkdir RTSPTool
    2. touch default.desktop

    2.修改default.desktop

    1. [Desktop Entry]
    2. Type=Application
    3. Name=RTSPTool #软件名字
    4. Comment=no #随意写
    5. Exec=RTSPTool #执行文件,刚刚拷过来的,不需要加路径
    6. Icon=robot #图标文件,不需要加扩展名(Linux本来就不存在扩展名的说法)
    7. Terminal=false #打开后会不会开启一个终端界面
    8. Categories=Application;

     各项功能参考:

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

    3.执行打包命令 

    1.当前路径下执行如下语句,中间是你的软件名称

     参考命令:

    linuxdeployqt RTSPTool -appimage

    执行完结果如下

     生成如下目录,点击AppImage就可以运行,至于他的图标为啥没有变我也不清楚,治标不治本的方法:在属性里修改,但是拷到另外一个系统里他还会变回来。

  • 相关阅读:
    ssh-keygen和openssl的区别
    C# 第七章『I/O数据流』◆第4节:数据流—FileStream 类
    Linux零基础入门(一)初识Linux
    [Pandas] 数据连接pd.concat
    设计模式-外观模式(Facade)
    Milvus踩坑笔记
    《lwip学习6》-- ARP协议
    【Python小系统】四级考满分的学姐告诉你这样学英语逢考必过,赶紧康康叭~(捷径分享)
    只要路由器有WPS按钮,佳能打印机连接到Wi-Fi网络的方法就很简单
    【MySQL】MySQL架构
  • 原文地址:https://blog.csdn.net/weixin_44965579/article/details/134533336