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

Qt笔记----》不同环境程序打包

文章目录

  • 概要
  • 1、windows环境下打包qt程序
  • 2、linux环境下打包qt程序
    • 2.1、程序目录
    • 2.2、创建一个空文件夹
    • 2.3、添加依赖脚本
    • 2.4、打包过程
      • 2.4.1、添加程序依赖库
      • 2.4.2、添加Qt相关依赖库

概要

qt不同运行环境下打包方式:windows/linux

1、windows环境下打包qt程序

参考此博主的文档:https://blog.csdn.net/qq_28446813/article/details/124134121

2、linux环境下打包qt程序

2.1、程序目录

(1)、打包流程

  • 创建一个空文件夹
  • 准备运行脚本
  • 生成qt依赖库
  • 添加qt依赖库

(2)、打包后的程序目录
在这里插入图片描述

2.2、创建一个空文件夹

          创建一个空文件夹,用于存储预打包文件,此处创建了一个名为“testTool”的文件夹

2.3、添加依赖脚本

准备两个脚本,分别为“ldd.sh”和“test02.sh”(test02为项目名)

(1)、ldd.sh
       一个用来提取目标可执行文件依赖的所有动态链接库,并将这些库复制到一个名为lib的目录中;

#!/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

(2)、test02.sh(test02为项目名称)
        设置动态链接库的搜索路径(LD_LIBRARY_PATH),使其指向脚本所在的目录,然后执行与脚本同名(去掉 .sh 后缀)的可执行文件,并将传递给脚本的所有参数原样传递给该可执行文件
       脚本名称必须和项目名称一致;

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

(3)、添加权限

   sudo chmod 777 ldd.sh
   sudo chmod 777 test02.sh

2.4、打包过程

打包过程分为:添加程序依赖库和QT依赖的库

2.4.1、添加程序依赖库

(1)、新建一个空文件夹,目录与项目所处位置并列,用于存放程序以及动态库,例如“testTool”文件夹

   mkdir /home/luck/project/test/testTool

在这里插入图片描述(2)、将ldd.sh 脚本复制到编译目录,如“build-test02-Desktop.Qt 5 14 2GCc 64bit-Release”;
在这里插入图片描述(3)、执行以下命令,会在当前目录生成lib文件夹,其中存放着运行test02所依赖的库文件。

   ./ldd.sh test02   //test02是项目名称

在这里插入图片描述(4)、将lib文件夹中的所有文件复制到第1步新建的文件夹“testTool文件夹”中。至此,就可以删除生成的lib文件夹和ldd.sh脚本了
在这里插入图片描述

2.4.2、添加Qt相关依赖库

(1)、将ldd.sh脚本复制到Qt的安装目录文件“/home/luck/software/Qt/qt5142/5.14.2/gcc_64/plugins/platforms”文件夹中;
在这里插入图片描述(2)、执行“./ldd.sh libqxcb.so*”,将生成的lib文件夹中的所有文件拷贝到“testTool”文件夹中,可能有重复的,直接替换即可。(拷贝完后,QT安装目录下刚才生成lib文件可以删除)
在这里插入图片描述
(3)、返回上级,将qt安装目录下的“…/5.14.2/gcc_64/plugins”中的“platforms和sqldrivers”两个文件拷贝到程序打包文件夹“testTool"中。
在这里插入图片描述(4)、ldd.sh生成完库文件后可删除,将testTool整个文件夹打包压缩即可,在其他电脑linux环境下压缩后直接运行可执行文件即可。
在这里插入图片描述

相关文章:

  • 【docker】将docker容器中的文件复制到宿主机的方法
  • centos线程数查看
  • Typora 小乌龟 git 上传到gitee仓库教程
  • git push失败的解决办法
  • 北斗导航 | THE GNSS AMBIGUITY RATIO-TEST REVISITED: A BETTER WAY OF USING IT【论文要点】
  • linux-core分析-柔性数组越界访问
  • c++中int、float、double类型数据与string类型数据相互转换
  • 一文掌握 Velox orderby 算子的排序算法
  • AWS S3 和 Lambda 使用
  • 【超详细】讲解Ubuntu上如何配置分区方案
  • 简单总结比较TCP,UDP,Socket协议
  • SQLServer常用日期时间格式转换及常用日期和时间函数
  • 注解 定义自定义注解,常见(spring springboot springcloud)
  • 设计模式 Day 2:工厂方法模式(Factory Method Pattern)详解
  • Sentinel[超详细讲解]-4
  • 【linux】malloc函数申请过程理解
  • HTML中一些需要注意的要点
  • 设计模式(结构性)-代理模式
  • GaussDB高安全—全密态数据库
  • Android SystemProperties 读写机制详解和案例使用
  • 经彩申城!上海网络大V沙龙活动走进闵行
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 美联储主席:不打算先发制人地降息,将继续观望
  • 紧盯大V、网红带货肉制品,整治制售假劣肉制品专项行动开展
  • 是否有中国公民受印巴冲突影响?外交部:建议中国公民避免前往冲突涉及地点
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院展开调查