【QT】记录一次QT程序发布exe过程

使用windeploy与enigma发布独立的QT程序

第一步 QT编译输出 release 版本

你的编译器是啥就用啥就好了,我是 “ msvc 2019 64位 ”,选择“release”

QT release
这时候你会遇到问题如下:

在这里插入图片描述
很显然,这是同一级目录缺乏动态链接库 xx.dll 造成的,原来我都是傻傻的一个个找,拷贝粘贴。 **~我是傻逼~ **。

正确的办法: 我们来到第二步。

第二步 QT 自带 windepoyqt 补全链接库

  1. 在开始菜单中找到并打开你对应编译器的qt控制台工具
    在这里插入图片描述

  2. 切到对应目录或者直接把exe托人控制台,运行

    windeployqt xxxxx.exe

在这里插入图片描述

这时候,你会发现你的exe可以打开了,啦啦啦。。。

我比较顺序,如果你遇到其他问题,可以留言一起解决。

但是,目前带了一堆库文件,很臃肿,不方便发给别人用。

于是,来到第三步。

第三步 enigma virtual box压缩打包为单一exe

这部分有点坑,看完再操作,或者直接到下面最后查看完坑。

这个就得使用第三方应用了,下载链接如下:

enigma压缩打包

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

当我以为好l=一切都好了的时候,我还特意检查只有一个exe的情况下,点击运行生成的exe,MFK,居然 又报错.

在这里插入图片描述

问题出在哪里呢,其实是因为直接拖入release文件夹导致(蛮猜哈)

我们点击ADD(增加) : 增加文件夹【递归】 VERY 重要,然后执行封包,您再看看。

谢天谢地,终于在运行起来了。

在这里插入图片描述

最后

如果你要经常管理-发布,那么你就把这写一个bat,调用qt的控制台执行对应的操作,然后enigma 的工程也可以保存到你的项目目录,方便多次使用。

补充一下自己用的bat脚本【QtDeploy2exe.bat】半自动部署

会玩的自行修改,写的不好…轻喷。。。

在这里插入图片描述

自己新建bat,复制粘贴,修改路径参数,然后用qt的控制台去运行,半自动。

@echo off
rem QT打包小助手 by Iamzui (有需要自行修改)
echo QT pack to one single exe file helper by Iamruzi

rem release文件夹
set RELEASE_DIR=D:\Works\Dr_Zhong\Projects\QtProjects\GControl2024\release

rem release文件夹app路径
set APP_DIR=%RELEASE_DIR%\GControl.exe

rem 打包压缩工具Enigma Virtual Box路径 
set ENIGMAVBOX_PATH=D:\Softwares\Tools\Deploy\Enigma Virtual Box\enigmavb.exe

cd /d "%RELEASE_DIR%"

rem /bin文件夹判定
if not exist bin (
    mkdir bin
    echo Folder 'bin' created.
) else (
    echo Folder 'bin' already exists.
)

rem 运行windeployqt 打包
echo Deploying Qt libraries...
windeployqt   %APP_DIR%

rem 拷贝exe主文件到bin
rem copy "%APP_DIR%" ".\bin\GControl.exe"

echo Deployment completed.

rem deploy结束后打开对应文件夹
rem start "" "%RELEASE_DIR%"

rem 运行Enigma Virtual Box打包压缩
echo Running Enigma Virtual Box...

start "" "%ENIGMAVBOX_PATH%"

echo Please follow the instructions in the Enigma Virtual Box dialog. You now need do it by your own hands.

echo 1. Choose input and output file path.(your oringinal exe and boxed file,you can rename it).

echo 2. Add folder, choose add "ADD FOLDER RECURSIVE".

echo 3. Click "File option", "enable files virtualization" and choose "Compress files".

echo 4. Click "Process",and just wait for a while,and check in your deploy folder....

echo Bat  run completed.

pause

参考

[1]: https://blog.csdn.net/xideaha/article/details/132382764

相关推荐

  1. Qt程序发布工具windeployqt.exe所带来的坑

    2024-06-08 11:36:07       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 11:36:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 11:36:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 11:36:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 11:36:07       18 阅读

热门阅读

  1. Docker面试整理-如何管理Docker容器的安全?

    2024-06-08 11:36:07       12 阅读
  2. 52.Fork & Join线程池

    2024-06-08 11:36:07       7 阅读
  3. Fiddler无法显示捕获到的网络流量的问题处理方法

    2024-06-08 11:36:07       12 阅读
  4. c++处理string类型的工具和常用方法总结

    2024-06-08 11:36:07       8 阅读
  5. 【python脚本】自动化办公处理excel表格

    2024-06-08 11:36:07       10 阅读
  6. AI在芯片设计中的未来

    2024-06-08 11:36:07       8 阅读
  7. mod_aws_transcribe

    2024-06-08 11:36:07       5 阅读