Qt项目打包发布超详细教程

这篇具有很好参考价值的文章主要介绍了Qt项目打包发布超详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt项目打包发布超详细教程



注意:后面的所有语句中涉及到编译器的,请大家自行替换成自己用的编译器,我这里使用的是MinGw的
 

前期准备工作

1.首先肯定要准备好你的Qt项目

2.以Release方式构建运行

以release的方式进行构建运行,这样生成的.exe文件(项目发布需要)大小会小很多,而Debug方式下产生的.exe文件带有许多调试信息,文件比较大

Qt项目打包发布超详细教程
3.构建运行后,就可以在你的构建目录看到构建后的一些文件了

Qt项目打包发布超详细教程
提示:如果编译之后找不到Releases文件夹在哪,可以按图操作查看编译的文件夹在哪

Qt项目打包发布超详细教程
 

一、发布方式

分享 Qt 程序(项目)的方式无非两种,要么直接分享程序的源代码,要么分享程序生成的可执行文件。
 
和直接分享源码相比,大多数人会选择后者。但遗憾地是,Qt Creator 默认以动态链接的方式生成可执行文件,该文件无法独立运行,必须为其提供所需的动态链接库。也就是说,只分享 Qt Creator 生成的可执行文件是不行的,必须将运行所需的动态链接库一起分享,可执行文件才能在他人的电脑上正常运行。
 
对 Qt 程序进行打包,指的就是找到可执行文件运行需要的所有动态库文件,并将它们统一存放到指定的空文件夹里。
 
通过以下两种发布方式操作完成过后就可以通过压缩软件打包成压缩包发给你朋友使用。让朋友解压过后点击你的.exe文件就可以运行了

(一)手动发布

提示:此方式仅可用于有Qt环境的电脑上运行,发给朋友时需要要他的电脑上装有Qt

1. 桌面单独新建一个文件夹,将需要的打包发布的文件放在一起,方便后续操作

2. 需要的文件:

Qt项目打包发布超详细教程

(1)release文件夹下的exe文件

(2)你自己所用到的所有数据文件

(3)mingw的bin目录下的:Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll、libgcc_s_seh-1.dll、libstdc+±6.dll、libwinpthread-1.dll

(再次提醒:如果你是MSVC编译器编译运行的,请在MSVC的bin目录下查找这些所需文件,下面的platforms文件夹也要从MSVC的目录下复制过来。但是经过我的操作,libgcc_s_seh-1.dll、libstdc+±6.dll、libwinpthread-1.dll这三个文件并没有在MSVC的bin目录中找到,但却报错缺少这三个文件,所以这三个还是照样把mingw的bin目录下的拷过来,问题就解决了)

总之,直接点击运行你的.exe文件,运行失败,提示缺少什么文件你就从bin目录下一个一个对应的找到并复制过来

3.有的人将所提示缺少的依赖库文件都添加过来后却报错This application failed to start because no Qt platform plugin could be initialized.

Qt项目打包发布超详细教程

解决办法有几种:

(1)将自己对应编译器目录下plugin文件夹中的platforms文件夹直接复制到项目.exe的所在目录下就可以了,这是最简单的,一般就这样操作即可

(2)第二种在用户变量中添加如下内容: 变量名:QT_QPA_PLATFORM_PLUGIN_PATH 变量值:%QTDIR%\plugins\platforms\

(3)直接添加系统path变量E:\Qt\5.15.2\mingw81_64\bin,你自己对应编译器的bin目录

(用户变量只对当前用户有效,系统变量对所有用户有效。添加了环境变量后就不用自己在去加依赖库了,它会自己去设置的变量路径找,对此可以看看环境变量的解释:作者:wdf过河的小卒子)
 
 
至此,就可以将文件夹压缩发送给你朋友了,记住对方要安装有Qt哦,再附上我自己的操作最终文件夹图

Qt项目打包发布超详细教程
 

(二)windeployqt发布

提示:此方法可在没有安装Qt环境的电脑上运行,不需要对方安装有Qt

1.windeployqt工具:

windeployqt 是 Qt 提供的 Windows 平台打包工具,它能自己找到 .exe 可执行文件需要的所有动态链接库,并将它们拷贝到当前文件夹中。

2.照样是桌面单独新建一个文件夹,方便后续操作:

这里我们只放入.exe文件和你自己的一些数据文件,其它所需要的依赖库文件让windeploy来帮我们添加

3.具体操作:

(1)win+R输入cmd打开命令窗口,通过cd命令进入到我们要操作的文件夹(.exe所在文件夹),cd /d C:\Users\BaiYang\Desktop\asd,或者直接在文件窗口地址栏输入cmd回车

Qt项目打包发布超详细教程
(2)执行 “windeployqt ExamSys.exe” 命令,换成自己的.exe名字

Qt项目打包发布超详细教程
解决办法:添加系统path变量E:\Qt\5.15.2\mingw81_64\bin,你自己对应编译器的bin目录,然后重新打开命令窗口,重新执行cd和windeployqt命令

Qt项目打包发布超详细教程
(3)到这一步直接双击 .exe文件,如果它可以成功执行,表明打包操作是成功的。我们可以直接将文件夹压缩分享给他人,只要是 Windows 平台,都可以直接点击运行 .exe 文件。

(4)注意事项

①windeployqt可能从别处找了个一样名字的过来,并不是bin目录下的,版本号就是不对的。把它和bin目录下同名的比较大小,大小不对一般就是拿错了,自己从bin目录里面复制过来就行

②打包发给别人后却报错,我们在自己电脑上点击却能正常运行:

Qt项目打包发布超详细教程
解决办法:我们自己能运行是因为之前在执行windeploy命令时将bin目录添加进了环境变量,缺少的文件它会自己去找,但是对方的电脑就不一定了,所以我们还需要手动加上所提示的缺少文件,一般就是少了libgcc_s_seh-1.dll、libstdc+±6.dll、libwinpthread-1.dll这三个文件
 
至此,也可以将文件夹压缩发送给你朋友了。操作很简单,但是有很多小细节需要注意,所以讲的篇幅也较其它文章多。感谢您的耐心

 

二、打包成.exe安装包

其实完成发布操作,就可以将整个文件夹发布出去了,但如果想打包成一个 exe 安装包,还需要一点操作。Windows环境将应用程序打包成一个exe应用,就像我们平常下载软件一样,以便给没有Qt环境的用户使用。
 
Windows 安装程序制作软件有许多,我这里使用的是NSIS + NisEdit来制作,使用NIS Edit打包程序,但是语言包必须Nsis支持实现;
 
背景还是windeployqt过后的那个文件夹,记住,没有libgcc_s_seh-1.dll libstdc+±6.dll libwinpthread-1.dll记得加上,有些人把bin添加进了环境变量,它会自己去找这三个文件,所以不会报错,但别人电脑就不会了

1.在发布的文件夹中添加程序安装图标、卸载图标及 License.txt 自述文件.如下图

Qt项目打包发布超详细教程
注意:直接将 xxx.jpg 或 xxx.png 后缀改为 xxx.ico 是不能将图片转为图标的。

在线转 icon 网址:https://app.xunjiepdf.com/img2icon/

注意生成图标时候像素选择大点,如 256*256。License.txt 文件内容可自行定义

2.安装NSIS和脚本编辑器NisEdit

可以评论区或私信我发给你们,我不是那种还需要积分,付费才能下载的对吧,新人哪来的积分,我们主打的就是一个学习

3.运行脚本编辑器(NisEdit):详细打包步骤可以看作者:急支糖浆123

​ 文件 --> 新建脚本:向导

Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程

若安装程序语言里面一片空白,没有语言选项时(NSIS 已安装),设置下编译器及帮助路径,

设置方法:

Qt项目打包发布超详细教程
回到刚刚步骤,接着往下操作

Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
这里不含文件夹,因为文件夹里面的东西并不是所有都需要,待会筛选几个文件出来单独添加就好了,全加进去也是可以的。
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
Qt项目打包发布超详细教程
安装后桌面图标如下图,大家可自行卸载

Qt项目打包发布超详细教程


文章止于风景,青春绽放于现在

Qt项目打包发布超详细教程文章来源地址https://www.toymoban.com/news/detail-421754.html

到了这里,关于Qt项目打包发布超详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用windeployqt和InstallShield打包发布Qt软件的流程

        Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程; Qt程序编译后是这样的文件,没有包括依赖的dll环境;此时发布给别人会报错缺少dll文件,因此

    2024年02月11日
    浏览(39)
  • [Nginx 发布项目] 打包后的项目,使用nginx发布

    前提 :使用的 mars3d 沐瑶大佬 修改后的nginx ,  -   下载地址 使用的是 Mars3D三维可视化平台 | 火星科技 修改后的 nginx 发布的服务,确保nginx发布服务时正常 ; 如果不是,那这里应该没有你想要的答案; 1、直接替换 html 1.1 直接将打包的文件,例如 :dist下的文件,直接拷

    2024年02月06日
    浏览(48)
  • QT+jenkins window环境实现一键自动化构建打包签名发布

            1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。         2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。         3.浏览器输入网址:127.0.0.1: port, port为端口号,默认8080,安

    2024年02月01日
    浏览(45)
  • 实测好用的Linux下打包发布Qt程序的方法(使用linuxdeployqt)

    自己试过能够打包好Qt程序,然后发给别人也能正常使用。 需要在github上下载编译好的 linuxdeployqt-x86_64.AppImage 应用程序文件。 下载后将其改名为linuxdeployqt(方便使用),在终端对其chmod +x 加权限,然后复制到 /usr/local/bin/中(终端能识别该路径下的执行文件) 终端输入 lin

    2024年02月13日
    浏览(39)
  • Linux下打包发布QT程序,并运行在其他没有安装QT环境的linux系统上

    一、Linux下打包发布步骤如下 编译应用程序环境:ubuntu18.04版本 开发环境:Qt5.14.2 编译环境:gcc_64 要移植的电脑:ubuntu18.04版本,没有开发环境 第一步:打包依赖库 1、创建一个打包目录,把生成的可执行文件拷贝放在创建的打包目录下,这里我是创建了一个打包目录名称为

    2024年02月12日
    浏览(40)
  • Qt C++中调用python,并将软件打包发布,python含第三方依赖

    工作中遇到qt c++调用我的python 代码,并且想要一键打包,这里我根据参考的以及个人实践的结果来简单实现一下。 环境:windows系统,QT Creater 4.5, python 3.8(anaconda虚拟环境) 1.创建QT工程 中间省略3个步骤图。创建完成后,如图。 首先提示各位从python过来的同仁 ,QT中有时

    2024年01月20日
    浏览(50)
  • uniapp-安卓调试打包发布超详细!!流程

    一、点击运行,运行到手机或模拟器,没有安装插件到话会显示,安装真机运行插件。 二、安装好之后显示界面会更新。  三、 3.1、数据线连接手机 3.2、安卓手机 开启开发者模式 备注:第一次开启需要,在设置中找到自己的版本号(可以在设置里搜索版本号,找到自己手机

    2024年01月17日
    浏览(32)
  • 项目打包发布流程

    1.编译并构建项目 2.部署                 scp2:需要写代码 赋几个链接用于自动部署:          Jenkins官网 https://www.jenkins.io/zh/ https://www.jenkins.io/zh/ 一文详解Jenkins的安装与配置 Jenkins是一个基于Java开发的开源的一种持续集成工具,主要用于环境部署,监控重复性的

    2023年04月16日
    浏览(31)
  • Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

    Remember to call vcvarsall.bat to complete environment setup! Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set. Qt 找不到 msvcp140.dll, msvcp140d.dll, vcruntime140.dll, vcruntime140d.dll, ucrtbased.dll 当你用 MSVC编译器编写的程序 ,在使用Qt的打包工具windeployqt.exe时,在终端第二行会看到 “R

    2024年02月03日
    浏览(59)
  • 【springboot开发】项目打包、发布和部署

    前言:可以打包成JAR包独立运行,也可以打包成WAR包部署到Tomcat容器中,若涉及到大规模部署,Jenkins成为最佳选择之一。本文主要介绍Maven项目的打包、发布和部署。 Maven默认会打包jar包,也可以在pom.xml中指定打包方法: 主要是最后一行。 然后在项目根目录下的控制台执行

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包