windows/linux下Qt可执行程序打包,linux桌面双击运行程序sh脚本

news2024/9/24 5:31:57

1、windows下Qt打包

windows下Qt的可执行文件打包简单的来说就是利用Qt自带依赖的打包工具windeployqt进行打包,该工具存在Qt安装目录下,执行命令为:windeployqt name.exe

打包依赖文件可参考如下链接中1-7步,后面的步骤是打包依赖文件为安装包的过程: 

Qt程序打包发布,含第三方库,详细教程。_清香可口柑的博客-CSDN博客_qt程序打包

 打包可执行文件为安装包可参考链接:

NSIS打包工具用法介绍与NSIS相关软件下载_夜雨听萧瑟的博客-CSDN博客_nsis打包教程

2、linux下Qt依赖文件打包,编写桌面双击运行程序sh脚本

 (1)使用QtCreator创建Qt的demo工程,选择release模式,生成可执行文件untitled1如下:

(2)将可执行文件untitled1拷贝到打包文件路径packDir下,如下:

(3)利用ldd 命令将执行文件依赖文件打包到文件中,编写的脚本如下:

#!/bin/bash
#S1打包的文件路径,$2可执行文件路径 
#package.sh打包脚本位于打包文件上一级目录,  eg:bash package.sh $PWD/packDirName untitled1
#$2"_lib_detail".txt 文件保存依赖文件详细情况

PACKAGE_Dir=$1
EXE_Name=$1/$2

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

ldd $EXE_Name | grep -o "/.*" | grep -o "/.*/[^[:space:]]*">$2"_lib_detail".txt 
num=0
for varlib in ${dependlib_arr[*]}
do
    cp "$varlib" $PACKAGE_Dir
    #echo $varlib
    let num+=1
done
echo "$2 of the dependency lib num is ${num}"
echo "Check the $2"_lib_detail".txt for details"


#ldd $EXE_Name输出依赖库
#grep -o "/.*" 只显示匹配的内容
#grep -o "/.*/[^[:space:]]*" 提取不包含空格的内容

打包脚本位于打包文件packDir上一层,如下:

 (4)运行打包脚本

 以上运行结果表示可执行文件依赖库文件数目25,依赖文件名详情记录于untitled1_lib_detail.txt。

打包结果如需:

 上面打包依赖脚本参考于:Linux下的QT程序的打包、运行、和关闭程序教程整理_linux qt_做一个坚强的女汉子的博客-CSDN博客

(5)在桌面编写运行程序脚本文件run.sh,如下:

 

注意脚本文件属性需设置为可执行属性,命令为$chmod +x run.sh,如下:

 双击脚本run.sh即可运行程序,如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

156、【动态规划】AcWing ——3. 完全背包问题:二维数组+一维滚动数组(C++版本)

题目描述 原题链接:3. 完全背包问题 解题思路 完全背包相对于01背包来说,对同一个物品可以选择多次。而01背包对同一个物品只能选择一次。 递推公式上的区别:01背包是dp[i][j] max(dp[i - 1][j], dp[i - 1][j - v[i]] w[i]),…

14. 最长公共前缀

14. 最长公共前缀 一、题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: …

在线支付系列【23】支付宝支付接入指南

有道无术,术尚可求,有术无道,止于术。 文章目录前言接入指南1. 创建应用2. 绑定应用3. 配置密钥4. 上线应用5. 开通产品沙箱环境开发前准备(沙箱环境)1. 获取参数、秘钥、证书2. 下载支付宝客户端3. 案例演示前言 在之…

一个自动配置 opengrok 多项目的脚本

前段时间在服务器上配置 opengrok 阅读代码,项目有很多个,一个一个手动配置比较繁琐。 我从搭建 tomcat 和 opengrok,到配置和索引完 5 个 Android 项目,用了差不多一整天。 要是再让我手动配置几个项目,估计真要崩溃…

学习Request和Response这一篇就够啦~

Request(请求) : Request:获取请求数据 Response:设置响应数据 Request继承体系: 使用request对象,查阅JavaEE API文档的HttpServeltRequest接口 Tomcat需要解析请求数据,封装为request对象,并且创建requ…

知识图谱嵌入技术研究综述

作者 张天成 1 , * 田 雪 1 , * 孙相会 1 , * 于明鹤 2 , * 孙艳红 1 , * 于 戈 摘要 知识图谱 是一种用图模型来描述知识和建模事物之间的关联关系的技术。 知识图谱嵌入 作为一种被广泛采用的知识表示方法。 主要思想是将知识图谱中的实体和关系嵌入到连续的向量空间中…

Ansible---playbook剧本

目录 引言:什么是playbook? 一、Playbook 1.1、playbook中的核心元素 1.2、playbook中的基础组件 1.3、playbook格式说明 1.4、实例:httpd服务剧本 二、playbook中的模块 2.1、Templates 模块 2.2、tags 模块 2.3、Roles 模块 引言&…

关于链表中插入结点的操作……

服了,好久没敲链表了,这都忘了 newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur-…

科技常识就像雨衣,要常备哦

科技常识就像雨衣,平常不准备,遇雨成落汤鸡 昨日晨跑遇雨,随身带轻便雨塑料雨衣 趣讲大白话:晴天挖水渠 *********** 信息科技是现代科技的【火车头】 往前看:要关注趋势 往后看:要了解行业历史 在当下&…

数据结构 | 栈与队列

🔥Go for it!🔥 📝个人主页:按键难防 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 📖系列专栏:数据结构与算法 &#x1f52…

使用C#编写k8s CRD Controller

本文项目地址:k8s-crd - Repos (azure.com)CRDCRD指的是Custom Resource Definition。开发者更多的关注k8s对于容器的编排与调度,这也是k8s最初惊艳开发者的地方。而k8s最具价值的地方是它提供了一套标准化、跨厂商的 API、结构和语义。k8s将它拥有的一切…

【测试开发】web 自动化测试实战 --- MuiscServerTest

目录界面测试功能测试1. 登录注册模块功能测试2. 音乐列表页自动化测试3. 喜欢音乐列表页自动化测试4. 上传音乐模块自动化测试5. 以上所有测试用例集成测试套件项目测试亮点web 自动化测试实战就通过测试自己的 onlinemusicserver 音乐服务器项目进行测试,通过 sel…

冰冰学习笔记:多线程

欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正。 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位…

基于TimeQuest时序优化原理和方法

💡 回顾基于RTL逻辑时序优化的基本思路,在关键路径中插入寄存器来优化时序 分析最坏路径 通过前面对TimeQuest软件的理解,基本上可以找到关键路径,此文章主要对关键路径时序进行优化,使设计达到时序要求,以…

RibbitMQ 入门到应用 ( 一 ) 基本概念

1.什么是RabbitMQ 1.0.什么是MQ 1.1.RabbitMQ简介 消息队列提供一个异步通信机制,消息的发送者不必一直等待到消息被成功处理才返回,而是立即返回。消息中间件负责处理网络通信,如果网络连接不可用,消息被暂存于队列当中&#…

基于YOLOV5的钢材缺陷检测

数据和源码见文末 1.任务概述 数据集使用的是东北大学收集的一个钢材缺陷检测数据集,需要检测出钢材表面的6种划痕。同时,数据集格式是VOC格式,需要进行转化,上传的源码中的数据集是经过转换格式的版本。 2.数据与标签配置方法 在数据集目录下,train文件夹下有训练集数据…

机器学习基本概念总结

深度学习是机器学习的一个特定分支,要想充分理解深度学习,就必须对机器学习的基本原理有深刻的理解。机器学习的本质属于应用统计学,其更多地关注如何用计算机统计地估计复杂函数,而不太关注为这些函数提供置信区间,大…

HTTP、HTTPS

目录 1.HTTP 1.1.概述 1.2.报文结构 1.2.1.请求报文 1.2.2.响应报文 1.3.方法 2.HTTPS 1.HTTP 1.1.概述 HTTP,超文本传输协议,WEB体系选用了该协议作为应用层协议。 1.2.报文结构 1.2.1.请求报文 HTTP的请求报文(request&#xff0…

idea集成chatGPT

idea集成chatGPT 一、idea安装chat GPT插件 1.在Plugins中搜索chatGPT,找到如图所示的这个并点击安装,安装完成后点击apply 插件安装成后会出现chatGPT的图标 2.点击点击工具窗口的扳手按钮,将进行插件的初始设置,这里选择官方…

Linux GPIO模块-RK3588 GPIO驱动分析

1.简介 GPIO是可编程的通用I/O外设。如下图所示,RK3588 GPIO控制器包含3个部分;APB接口模块和SoC内部的APB总线连接,负责与SoC交换数据,位宽为32位;I/O port接口模块管理外部的引脚,引脚的输入和输出都要经…