当前位置: 首页 > news >正文

056-第三代软件开发-软件打包

头图

第三代软件开发-软件打包

文章目录

  • 第三代软件开发-软件打包
    • 项目介绍
    • 软件打包
      • 1 下载 linuxdepoyqt 工具
      • 2 安装 linuxdepoyqt
      • 3 qmake配置
      • 4 打包程序
    • 总结

关键字: QtQmllinuxdeployqtUbuntuAppImage

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

软件打包

在我们软件开发到尾声的时候,正式的软件发布就会提升上,在Windows下,我们都知道有windeployqt这个工具协助我们把用到的相关的Qt库以及插件文件夹拷贝到我们程序的目录,完了我们在借助一下安装包制作工具就可以完成一个软件安装包的制作了。

其实在Linux也有这一套这样的流程,只是需要我们稍微动手微操一下即可。那么因为这个Linux 的系统有好多的版本,那么这里咱们仅保证下面教程在Ubuntu下可用,具体版本是 Ubuntu 22.04.

1 下载 linuxdepoyqt 工具

正常的Ubuntu系统是不带这个工具的,包括我们安装完了Qt ,也是不带这个工具的,需要我们手动下载一下,地址贴这里:

https://github.com/probonopd/linuxdeployqt/releases

下载这个对应的AppImage文件就行,如下图所示:

image-20230804223747708

2 安装 linuxdepoyqt

首先到我们的下载目录,修改刚才我们下载的这个AppImage文件的权限,这里可以直接无脑777

sudo chmod 777 linuxdeployqt-continuous-x86_64.AppImage

完了把这个文件复制到/usr/local/bin/linuxdeployqt下面就可以,

sudo cp linuxdeployqt-continuous-x86_64.AppImage /usr/local/bin/linuxdeployqt

这里可以打印一下他的版本测试一下

linuxdeployqt -version

3 qmake配置

这里好多教程都是叫大家先执行下qmake -v 看下Qt的版本,我测试了几次下来发现,基本这一步都是失败的,直接就是显示no such file,所以保险起见,怎么顺序操作一下

  1. 安装 qtchooser

    sudo apt install qtchooser
    
  2. 修改配置文件

    sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
    

    里面有两个路径需要配置一下,一个是你Qt的对应版本路径,一个是你的对应版本的bin目录,如下图所示,这里要配置你的路径,不要和我一样

    image-20230804224813340

  3. 完了咱们在执行 qmake -v

    image-20230804225010606

第三步很重要,一定要确认这里的qmake就是编译你程序的qmake,错了很有可能你的程序报缺库了。因为库版本可能不对。

4 打包程序

通常我们打包的程序都是Release版本的,但是正常我们Qt在编译完Release后,你会发现对应文件目录下有大量的中间文件,而这些文件在打包的时候不需要的,或者说你程序运行的时候是不需要的,他们都是为了生成你程序而生成的中间文件,所以这里我们可以把要打包的程序单独复制到一个目录,完了执行打包指令sudo linuxdeployqt App -appimage就可以了,基本大部分博主都是这么介绍的,其实如果你按照这个来,你会发现还有很多问题,你的指令出不来,所以我里还是顺序的建议来一下。

  1. 防止包缺库错误

    sudo apt update
    libpq.so.5
    sudo apt-get install libpq-dev
    
  2. 安装依赖,不然无法运行AppImage

    sudo apt install fuse libfuse2
    
  3. 完了我们在执行 sudo linuxdeployqt App -appimage

    兼容问题

    其实如果你的Ubuntu版本比较行,比如我现在的Ubuntu 22.04版本,执行上面代码其实还是会报错的额,所以需要把第三步的指令换成sudo linuxdeployqt Appname-appimage -unsupported-allow-new-glibc,这样就好了。

  4. 运行程序

    如果顺利,你就会看到一个*.AppImage的文件,这个就是我们打包好的程序了,直接./运行就可以了

总结

这里打包软件应该也是我们日常开发中不常见的,而且规范的公司,这个部分可能都轮不到我们一个工程师来操作。是不是运维干这个,不太懂,没去过大公司。

最后,还是那句话,任何带我们看风景的人,都值得被铭记

参考:https://blog.csdn.net/qq_39072246/article/details/125254270?spm=1001.2014.3001.5506


博客签名2021

相关文章:

056-第三代软件开发-软件打包

第三代软件开发-软件打包 文章目录 第三代软件开发-软件打包项目介绍软件打包1 下载 linuxdepoyqt 工具2 安装 linuxdepoyqt3 qmake配置4 打包程序 总结 关键字: Qt、 Qml、 linuxdeployqt、 Ubuntu、 AppImage 项目介绍 欢迎来到我们的 QML & C 项目&…...

C++相关闲碎记录(2)

1、误用shared_ptr int* p new int; shared_ptr<int> sp1(p); shared_ptr<int> sp2(p); //error // 通过原始指针两次创建shared_ptr是错误的shared_ptr<int> sp1(new int); shared_ptr<int> sp2(sp1); //ok 如果对C相关闲碎记录(1)中记录的shar…...

如何快速搭建一个大模型?简单的UI实现

&#x1f525;博客主页&#xff1a;真的睡不醒 &#x1f680;系列专栏&#xff1a;深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发 &#x1f498;每日语录&#xff1a;相信自己&#xff0c;一路风景一路歌&#xff0c;人生之美&#xff0c;正在于…...

国家开放大学 平时作业 测试题 训练

试卷代号&#xff1a;1340 古代小说戏曲专题 参考试题&#xff08;开卷&#xff09; 一、选择&#xff08;每题1分&#xff0c;共10分&#xff09; 1.下列作品中属于唐传奇的是( )。 A.《公孙九娘》 B.《观音作别》 C《碾玉观音》 …...

后端防止重复提交相同数据处理方式(Redis)

使用AOP注解处理接口幂等性&#xff0c;默认禁止同一用户在上次提交未果后10秒内又重复提交 在原先的sameUrlData的注解上进行了copy新建优化&#xff0c;使用redis去setnx的参数视项目使用点而调整&#xff0c;不一定是每个项目都适合这种取参形式。 源码如下: package com…...

最小栈[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 设计一个支持push&#xff0c;pop&#xff0c;top操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现MinStack类: MinStack()初始化堆栈对象。 void push(int val)将元素val推入堆栈。 void pop()删除堆栈顶部的元素。 in…...

Oracle(2-9) Oracle Recovery Manager Overview and Configuration

文章目录 一、基础知识1、User Backup VS RMAN2、Restoring &Recovering DB 还原&恢复数据库3、Recovery Manager Features 管理恢复功能4、RMAN Components RMAN组件5、Repository1: Control File 存储库1:控制文件6、Channel Allocation 通道道分配7、Media Manageme…...

滑动验证码

先上图 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>滑动验证码</title><style>* {margin: 0;padding: 0;}.box {position: relative;width: 375px;margin: 100px a…...

数据爬取+可视化实战_告白气球_词云展示----酷狗音乐

一、前言 歌词上做文本分析&#xff0c;数据存储在网页上&#xff0c;需要爬取数据下来&#xff0c;词云展示在工作中也变得日益重要&#xff0c;接下来将数据爬虫与可视化结合起来&#xff0c;做个词云展示案例。 二、代码 # -*- coding:utf-8 -*- # 酷狗音乐 通过获取每首歌…...

rkmedia_vi_get_frame_test.c 代码解析

使用示例&#xff1a; 录像&#xff1a; rkmedia_vi_get_frame_test -a /etc/iqfiles/ -I 1 -o 1080.nv12 然后用yuvplayer.exe可以播放。 录像10帧&#xff1a; rkmedia_vi_get_frame_test -a /etc/iqfiles/ -I 1 -o 1080.nv12 -c 10 解析代码&#xff1a; #include <as…...

探究Kafka原理-3.生产者消费者API原理解析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44…...

Linux系统iptables扩展

目录 一. iptables规则保存 1. 导出规则保存 2. 自动重载规则 ①. 当前用户生效 ②. 全局生效 二. 自定义链 1. 新建自定义链 2. 重命名自定义链 3. 添加自定义链规则 4. 调用自定义链规则 5. 删除自定义链 三. NAT 1. SNAT 2. DNAT 3. 实验 ①. 实验要求 ②. …...

Openwrt 系统安装 插件名称与中文释义

系统镜像 当时是去官网找对应的&#xff0c;但是作为门外汉&#xff0c;想简单&#xff0c;可以试试这个网站 插件 OpenWrt/Lede全部插件列表功能注释...

[原创]Delphi的SizeOf(), Length(), 动态数组, 静态数组的关系.

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…...

C++(20):bind_front

C(11)&#xff1a;bind_c11 bind_风静如云的博客-CSDN博客 提供了方法来绑定函数参数的方法。 C20提供了bind_front用于简化这个绑定。 #include <iostream> #include <functional> using namespace std;void func1(int d1, int d2) {cout<<__func__<&l…...

【spring】bean的后处理器

目录 一、作用二、常见的bean后处理器2.1 AutowiredAnnotationBeanPostProcessor2.1.1 说明2.1.2 代码示例2.1.3 截图示例 2.2 CommonAnnotationBeanPostProcessor2.2.1 说明2.2.2 代码示例2.2.3 截图示例 2.3 ConfigurationPropertiesBindingPostProcessor2.3.1 说明2.3.2 代码…...

Centos7安装docker、java、python环境

文章目录 前言一、docker的安装二、docker-compose的安装三、安装python3和配置pip3配置python软链接&#xff08;关键&#xff09; 四、Centos 7.6操作系统安装JAVA环境 前言 每次vps安装docker都要看网上的文章&#xff0c;而且都非常坑&#xff0c;方法千奇百怪&#xff0c…...

简单小结类与对象

/*** Description 简单小结类与对象*/ package com.oop;import com.oop.demo03.Pet;public class Application {public static void main(String[] args) {/*1.类与对象类是一个模版&#xff1a;抽象&#xff0c;对象是一个具体的实例2.方法定义、调用&#xff01;3.对象的引用…...

ABAP 如何获取内表行的索引值(index) ?

获取索引值 在ABAP中&#xff0c;如果需要获取一个内表中某条记录的索引&#xff08;index&#xff09;&#xff0c;可以使用 READ TABLE 语句。在 READ TABLE 语句后面的 WITH KEY 子句可以指定搜索条件&#xff0c;如果找到了匹配的记录&#xff0c;系统字段 SY-TABIX 将保存…...

ESP32-Web-Server编程- 使用表格(Table)实时显示设备信息

ESP32-Web-Server编程- 使用表格&#xff08;Table&#xff09;实时显示设备信息 概述 上节讲述了通过 Server-Sent Events&#xff08;以下简称 SSE&#xff09; 实现在网页实时更新 ESP32 Web 服务器的传感器数据。 本节书接上会&#xff0c;继续使用 SSE 机制在网页实时显…...

提示词失效?双色调渲染偏色?深度解析Midjourney色彩空间转换机制,精准锁定sRGB→Lab双色域锚点

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;提示词失效&#xff1f;双色调渲染偏色&#xff1f;深度解析Midjourney色彩空间转换机制&#xff0c;精准锁定sRGB→Lab双色域锚点 当用户在Midjourney中输入高饱和度提示词&#xff08;如“vibrant cyan neo…...

别只懂SARA归档删除!SAP数据生命周期管理实战:归档、查询与长期保留指南

SAP数据生命周期管理实战&#xff1a;从归档策略到长期可查询架构 在数字化转型浪潮中&#xff0c;企业数据量呈现指数级增长。某跨国制造企业的SAP系统仅物料凭证表每年就新增超过200万条记录&#xff0c;导致月结操作耗时从2小时延长至8小时。这不仅是存储空间的问题——系统…...

CANN/pypto张量创建指南

Tensor的创建 【免费下载链接】pypto PyPTO&#xff08;发音: pai p-t-o&#xff09;&#xff1a;Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto Tensor是PyPTO中的基本数据结构&#xff0c;用于表示将在计算图中使用并在NPU上执…...

Sub-Zero字幕格式转换:从SRT到VTT的完整处理流程

Sub-Zero字幕格式转换&#xff1a;从SRT到VTT的完整处理流程 【免费下载链接】Sub-Zero.bundle Subtitles for Plex, as good you would expect them to be. 项目地址: https://gitcode.com/gh_mirrors/su/Sub-Zero.bundle Sub-Zero是一款为Plex媒体服务器提供高质量字幕…...

Wedding-website图片库与相册功能:展示精美婚礼照片的最佳实践

Wedding-website图片库与相册功能&#xff1a;展示精美婚礼照片的最佳实践 【免费下载链接】wedding-website Our Wedding Website &#x1f46b; 项目地址: https://gitcode.com/gh_mirrors/we/wedding-website 婚礼是人生中最珍贵的时刻之一&#xff0c;而如何将这些美…...

【专利视点】某抗病毒药物领域明星企业上市进程知产问题分析

医药领域IPO&#xff0c;正在随着证券市场监管新形势而发生变化&#xff0c;并从CXO板块向更多细分赛道延伸。知识产权问题是影响企业IPO上市的重要因素之一。从上海证券交易所官网统计得知&#xff0c;截至2024年10月14日&#xff0c;有102家医药制造业企业终止科创板IPO申请&…...

将数据从 OPPO 传输到 iPhone 的 4 个有效方案

拥有华丽的设计和强大的功能&#xff0c;谁不想拥有一部新的 iPhone&#xff1f;如果您是Android OPPO 用户&#xff0c;现在正准备换用新 iPhone&#xff0c;您可能会担心数据传输的问题。由于 OPPO 和 iPhone 的操作系统不同&#xff0c;很多人觉得将 OPPO 手机转换为 iPhone…...

2026年阿里云OpenClaw/Hermes Agent配置Token Plan部署方法详解

2026年阿里云OpenClaw/Hermes Agent配置Token Plan部署方法详解。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...

不用写代码,也能做学生画像分析?用助睿BI完成考勤高危群体可视化实战

一、前言&#xff1a;为什么要做学生考勤画像分析&#xff1f; 在校园管理场景中&#xff0c;学生考勤数据并不只是简单的“迟到、早退、请假、校服违规”记录。如果能够对这些数据进行系统化分析&#xff0c;就可以进一步发现不同学生群体的行为特征&#xff0c;例如哪些学生…...

从SEO到GEO的技术跃迁:如何利用本地化RAG架构解决企业私域数据的“幻觉”难题?

在2026年的今天&#xff0c;传统的SEO&#xff08;搜索引擎优化&#xff09;正在经历一场前所未有的降维打击。当用户习惯从百度跳转至豆包、DeepSeek或Kimi等生成式AI提问时&#xff0c;流量的分发逻辑已经从“点击网页”变成了“AI直接生成答案”。这就是我们常说的 GEO&…...