一、简述

QT项目开发完成后,需要打包发布程序,在实际生产中不可能把源码发给别人,所以需要将源码打包正可执行文件或者安装程序。

二、设置应用图标

把 ico 文件放到源代码目录下,在QT项目中的'.pro'文件中添加自己准备好的ico文件(使用QT默认生成的图标时,可以跳过这一步)

RC_ICONS = user.ico // user.ico是自己的图标名称

三、打包windows系统下的可执行文件

  1. 以 Release 方式编译生成 exe 程序,也就是使用Release模式调试程序。

  2. 编译完成后会在项目文件下生成一个'build-Qt_hello_word-Desktop_Qt_5_12_9_MinGW_64_bit-Release'文件,在文件release中找.可执行文件

  3. 现在的可执行文件是不可运行的,会提示找不到.dll文件

  4. 创建'QT_test'文件,将生成的.exe文件拷到'QT_test'文件中

  5. 打开MinGW,进入到'QT_test'文件路径下



  6. 在MinGW中使用windeployqt命令打包程序
windeployqt Qt_hello_word.exe



7. 执行完成后文件中会生成很多dll文件,这样我们的可执行文件就已经制作完成了,点击.exe文件就可以直接运行





8. 使用Inno Setup软件可以将执行文件打包成安装软件,在这里我就不过多介绍了,需要的小伙伴可以查看这篇博客,这里我就直接引用一下Qt 程序发布以及打包成exe安装包

Inno Setup软件的下载地址:https://jrsoftware.org/isdl.php

四、打包linux系统下的可执行文件

linux系统下打包成成可执行文件有两种方式,如果系统中安装有QtCreator软件,直接以Release方式编译运行即可生成可执行文件,这里主要介绍一下qmake的使用。

  1. 安装qmake软件

    在linux系统下打包可执行文件需要使用qmake软件,没有安装的可以安装一下
sudo apt-get install qtchooser
  1. 将windows系统下的qt项目拷贝到linux系统下,将.pro.user文件删除



  2. 执行qmake命令生成Makefile文件

  3. 使用make编译生成可执行文件

  4. 运行程序./hello_word

五、打包ARM环境下的可执行文件

打包ARM平台下的可执行文件和linux系统下的方式是一样的,同样的有两种方式,只不过ARM的qmake是qt-everywhere-src-5.12.9源码编译生成的软件,编译完成后在路径'arm-qt/bin'路径下会生成qmake软件,不知道怎么编译的小伙伴可以看我之前的QT之ARM平台的移植

  1. 使用qmake软件的方式编译

    生成Makefile文件并编译
/home/linux/arm-qt/bin/qmake
make



2. 以Release方式编译

在linux中装有QtCreator软件的小伙伴可以在软件中添加arm环境下的qmake软件,直接以Release方式编译即可生成执行文件。

打开 Qt Creator 界面,找到 Tools(工具)→Options(选项)。



按下图步骤,找到ARM平台的qmake。



配置C/C++编译器为 arm-linux-gnueabihf-g++



配置Kits



运行程序



编译完成后将会在项目文件夹中生成ARM环境的可执行文件

参考文献

Qt 程序发布以及打包成exe安装包:https://www.cnblogs.com/ybqjymy/p/13540451.html

QT5程序打包发布,最终生成一个.exe执行程序:http://blog.sina.com.cn/s/blog_96c6e6ef0102zx8y.html

QT程序打包成多平台可执行文件的更多相关文章

  1. Qt程序打包成exe可执行文件图文教程(图文并茂,且用到了filepack)

    很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题.现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文 ...

  2. Qt程序打包成exe可执行文件

    很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题.现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文 ...

  3. 【win】【qt5打包】【qt程序打包成一个可执行文件(带图标任何win都可以运行哦)】

    [前言] 业务需求将qt程序打包成win可执行文件.咱是做linux的,奈何用的麒麟系统,程序运行在win,好嘛,重新在win qtcreator编译后打包呗. [目标] 1.给qt程序添加一个图标. ...

  4. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  5. Java程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

  6. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  7. python + pyinstaller 实现将python程序打包成exe文件直接运行

    pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...

  8. 将eclipse的应用程序打包成.exe

    转自:http://blog.163.com/loveshijie_1991/blog/static/1760553112012102573437156/ 参考:http://blog.csdn.ne ...

  9. ubuntu 环境下的QT程序打包

    很多的时候 需要将自己写的QT 程序发布一下  所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库. 1. QtCreate使用Release版 ...

随机推荐

  1. MetaBase使用iframe内嵌到Vue页面样式优化

    Matebase是一个开源,易上手的BI工具,这里不做太多介绍了. 官网地址:https://www.metabase.com/ 解决问题描述: 使用iframe内嵌Metabase公开链接之后,页面 ...

  2. zabbix latest.php SQL注入漏洞(CVE-2016-10134)

    Zabbix 2.2.14之前的版本和3.0.4之前的3.0版本 latest.php页面提取cookie中的zbx_sessionid的后16位 246c58ba963457ef http://19 ...

  3. etcd raft 处理流程图系列2-wal的读写

    本文仅介绍wal的基本处理,如create.open.close.read等操作.鉴于篇幅原因,下面介绍replayWAL(启动raft节点时执行)函数涉及的读文件操作:从wal目录中加载snapsh ...

  4. 内置函数 strlen

    1 //内置函数 strlen 2 //计算字符串的实际长度,不含字符串结束标准\0 3 4 #include<stdio.h> 5 #include<stdlib.h> 6 ...

  5. Window2016 安装Docker

    测试环境 Windows2016 DataCenter 安装步骤 1.开始运行"PowerShell" 2.指定Tls协议为1.2.(建议都先执行这一条命令,官方文档没有这一步,实 ...

  6. Haskell Command-line Application Building

    Haskeline Package Haskeline provides a user interface for line input in command-line programs. This ...

  7. xv6学习笔记(3):中断处理和系统调用

    xv6学习笔记(3):中断处理和系统调用 1. tvinit函数 这个函数位于main函数内 表明了就是设置idt表 void tvinit(void) { int i; for(i = 0; i & ...

  8. SQL 练习12

    查询和" 01 "号的同学学习的课程 完全相同的其他同学的信息 分析 如果某同学学的某一个课程和01同学所学的课程有对应,那么子查询返回false. 如果没有对应,子查询返回tru ...

  9. 题解 P4111 [HEOI2015]小 Z 的房间

    题解 题目大意:给定一个无向图,求它的生成树个数. 一道裸的矩阵树定理,外加一些建图的技巧. 矩阵树定理 对于一个 \(Laplace\) 矩阵,其去掉任意一行后的行列式即为答案. 行列式不会的看这里 ...

  10. 什么是TCP,什么是UDP,它们两者的区别? 三次握手

    TCP: 定义: TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义. TCP编程的 ...