Qt程序打包成一个单独exe的方法 Qt程序打包成一个单独exe的方法

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

目录

Qt程序打包成一个单独exe的方法

程序发布

程序打包

问题


Qt程序打包成一个单独exe的方法

Qt程序发布及打包,同时修改可执行文件的图标。本教程使用Qt自带的 windeployqt 工具外加Enigma Virtual Box打包工具。首先需要知道的是,Qt程序发布需要的程序是用 Release 方式编译的。下面看一下具体的操作。

改变exe的图标
1、下载一个.ico格式的图标(如:exe_ico.ico),将exe_ico.ico复制到工程目录下。
2、工程目录下新建一个空白txt文档,文档内添加如下内容
IDI_ICON1 ICON DISCARDABLE "exe_ico.ico"
3、将文档后缀修改为.rc(如:exe_ico.rc)
4、在工程的pro文件添加如下内容
RC_FILE = exe_ico.rc
另注:使用VS+Qt的开发方式:在编辑器上的项目目录(Resource Files)添加exe_ico.rc文件即可。
5、重新编译程序,即可发现生成的程序图标变成了exe_ico.ico

程序发布

1、首先将Release方式生成的exe复制到一个单独的文件夹下,如E盘根文件下的demo文件夹内。
2、开始菜单找到Qt目录下的Qt 5.5 for Desktop (MinGW 4.9.2 32 bit)打开命令行;
3、命令行进入步骤1新建的demo目录内


4、输入windeployqt 项目名.exe(如windeployqt QtTest.exe)

 
5、进行到这,Qt程序所需要的库都添加完成。但是有一部分是用不到的,想删除的可以用程序依赖关系查看软件来查看哪些文件用不到,感兴趣的自己去百度吧。

或者 1、将Release方式生成的exe复制到一个单独的文件夹下,如D盘根文件下的D:\SW_DEV\QT\Release_exe_temp文件夹内。

2、打开命令行工具cmd,进入windeployqt.exe目录(C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin>windeployqt.exe),使用 windeployqt 对生成的exe 文件进行打配置动态库文件; 

3、C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin>windeployqt.exe D:\SW_DEV\QT\Release_exe_temp\MODBUS.exe

程序打包

安装Enigma virtual box工具(安装过程一直next就行)

Enigma virtual box官方链接:https://enigmaprotector.com/en/downloads.html

1、打开提前安装好的Enigma Virtual Box。具体操作如下:

 2、如上图
1)浏览打开demo下的Test.exe文件

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法
2)点击增加,选择递归添加文件,选中demo文件夹点击确定

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法
3)点击文件选项,选中压缩文件

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法
4)点击执行封包。

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法
3、将封包后的程序复制到其他地方,打开测试,结束。

问题

1. 之前打包很顺利,没有出现问题。这次换了一台电脑,就出现了问题:

打包完成后,程序无法运行,报错:

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

 百度了一会儿,有人说是因为:

使用enigmavb打包程序时,包含的根目录应该与待封包的主程序同级目录,不然会报错Cannot load library QT5Core.dll
同样的程序,下图右边不报错,左边报错

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

 我打包时不存在这个问题,还是会报错,所以不是这个原因;

最终确认是环境变量的问题:

因为安装QT时没有设置环境变量

开始-计算机-右键-属性-高级系统设置,高级选项卡-环境变量-系统变量

在系统变量里面找到Path,点击编辑,在弹出的对话框中点击新建,根据自己的QT安装位置,输入类似C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin,后一路点击确定即可。

设置完就可以运行了
 

2.  给到客户之后,反馈还是不行:

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

 ps:之前我一直是在开发的电脑上调试的,问题1就处在那个时候,电脑有安装QT软件;问题2现在是客户的电脑,是没装过QT软件的;所以问题是:

把 Enigma Virtual Box 打包过的 exe 放到另一个电脑使用,打开exe会报错:cannot load library Qt5Core.dll
(而实际上使用 Enigma Virtual Box 打包时,已经包含了 Qt5Core.dll 库)

查了一下,原因是:

  • 这个并不是缺少 Qt5Core.dll 的原因,也不是这个库有问题。
  • 是由于 【问题解决】由于找不到libgcc_s_dw2-1.dll 、libwinpthread.dll、libstdc+±6.dll,无法继续执行代码。重新安装程序可能会解决此问题。 这个问题导致的。
  • 缺少了 libgcc_s_dw2-1.dll,libwinpthread.dll,libstdc++-6.dll 这三个动态库,打包后却报错 cannot load library Qt5Core.dll ,分析可能是因为 Qt5Core.dll 依赖以上的库才能运行吧。

解决方法

从 Qt5.12.0\5.12.0\mingw73_64\bin(版本不同目录不同) 目录下把这 libgcc_s_dw2-1.dll,libwinpthread.dll,libstdc++-6.dll 三个动态库拷贝过来,再使用Enigma Virtual Box 打包的exe就不会报错了。

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

修改前和修改后目录对比:

Qt程序打包成一个单独exe的方法
Qt程序打包成一个单独exe的方法

 重新打包之后,果然可以运行了

 这部分参考:https://javonpeng.blog.csdn.net/article/details/121926624?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121926624-blog-125670700.235%5Ev28%5Epc_relevant_t0_download&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121926624-blog-125670700.235%5Ev28%5Epc_relevant_t0_download&utm_relevant_index=2https://javonpeng.blog.csdn.net/article/details/121926624?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121926624-blog-125670700.235%5Ev28%5Epc_relevant_t0_download&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121926624-blog-125670700.235%5Ev28%5Epc_relevant_t0_download&utm_relevant_index=2文章来源地址https://www.toymoban.com/news/detail-509474.html

到了这里,关于Qt程序打包成一个单独exe的方法 Qt程序打包成一个单独exe的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Visual Studio 打包源文件为可执行.exe程序(带有Qt Tool和第三方库)

    写在前面 : 寻找这个打包方法的起因是我用Qt写一个大作业,为了能把程序打包好,从ChatGPT和网上找了不少的内容, 花了差不多一天的时间才打包完成 , 下面的是打包过程中顺便用Obsidian记的一些 打包完成后,你可以将程序发到你同学的电脑上, 这样在他们的电脑上即可执

    2024年02月04日
    浏览(40)
  • 6种打包Python代码的方法,让你的程序变成exe应用!

    Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。 然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。 因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。 本文将介绍6种将Python代码打包

    2024年02月16日
    浏览(43)
  • 6种打包Python代码的方法,让你的程序变成exe应用

    Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。 然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。 因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。 本文将介绍6种将Python代码打包

    2024年01月18日
    浏览(34)
  • Qt软件打包后报错“无法定位程序输入点于动态链接库.exe上。”解决办法(超详细,看完不会怪我)

    目录  前言 一、出现类似如下界面:  二、通过尝试分析,这个界面出现的原因是因为自己没有设置环境变量 三、其次右击打开主菜单,选择系统选项 四、选择右边的高级系统设置  五、点击环境变量 六、再系统变量里面找到Path路径 七、点击编辑添加系统环境变量,将自

    2024年02月15日
    浏览(44)
  • 【前端】关于如何将html、js、css等一个html网页打包成单一的exe可执行程序文件

    要将 HTML、JS、CSS 等一个 HTML 网页打包成单一的可执行程序文件(exe),通常需要使用一些工具和框架来实现的。 这里以Electron为例,详细说一下具体的打包过程 1.安装依赖: 确保已经安装了 Node.js。在命令行中进入你的项目目录,执行以下命令安装 Electron: 2.创建文件结构

    2024年02月11日
    浏览(45)
  • 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    【声明】这篇文章可能写的很差,作者技术不够。但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 【首言】exe是电脑上直接点击就可以使用的。当你写了一个.py文件,可以实现你的有趣功能,于是你高兴的把这个发送给你的朋友,但是你的朋友

    2024年02月01日
    浏览(40)
  • Qt windeployqt.exe 打包qml

    我们在QtCreator下面开发程序,一般都会遇到工程发布给客户使用的情况。我们通常会使用Qt自带的打包工具:windeployqt.exe。 windeployqt.exe是Qt自带的工具,用于创建应用程序发布包。 简单来说,这个工具可以自动地将某程序依赖的库、资源拷贝到其所在目录,防止程序在其他电

    2024年02月02日
    浏览(133)
  • 用windeployqt.exe打包Qt代码

    首先找到我们编译Qt代码的对应Qt版本的dll目录,该目录下有windeployqt.exe: D:DevToolsQt5.9msvc2017_64bin  在这个目录下打开cmd程序。 然后把要打包的exe放到一个单独的目录下,比如:  然后在cmd中调用: windeployqt.exe D:DevelopFeimosVolumeRenderFeimosVolumeRender-EXEFeimosVolumeRender.exe 然后

    2024年02月15日
    浏览(31)
  • vs c++ qt 打包成exe

    1 vs2019+QT 打包项目 可执行文件exe_哔哩哔哩_bilibili 2 在开始中 找到 qt51425.14.2msvc2017_64 类似于cmd命令行 3 windeployqt.exe 添加环境变量 qt安装包搜索windeployqt.exe D:qt5.15.2winrt_x64_msvc2019bin 4 x64Release  vs调到Release x64 重新生成 5 运行 windeployqt.exe D:mainx64Releasemain_ui_download.ex

    2024年01月16日
    浏览(42)
  • Qt 把.exe打包成安装文件形式

    Qt Installer Framework 使用 官网下载链接 下载直接安装 确保自己的.exe能够正常运行,没有缺少dll文件 回到 startmenu 目录下,打开CMD终端,执行指令 脚本 程序生成脚本.bat 不出意外,正常生成安装包,双击即可安装 在 startmenuconfig 文件夹下准备3张图片 修改 startmenuconfigconfig.xml 文件 重

    2024年04月29日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包