如何在Windows下发布QT应用程序

如何在Windows下发布QT应用程序,第1张

你好,

使用Release

模式编译后,release

的目录下包含

Hello1.exe

可执行程序。如果我们需要发布这个程序,那么还需要

QT

的运行库,包括哪些呢?拿一台干净的机器一个个试,终于把这些

Qt

库给找出来,成功运行

QtCore4.dll

QtGui4.dll

mingwm10.dll

libgcc_s_dw2-1.dll

其中要特别注意的是,这些文件应该从

Qt

安装目录下的

[QT安装目录]\qt\bin

子目录中获取,因为[QT安装目录]\bin

也有同样的文件,但是无效。这里仅限

Windows

系统,其他非

Windows

系统尚未研究。不过也碰到一个小问题,

Hello1

程序中有这么一行代码:QStringgbk_msg=codec->toUnicode("你确认要退出HelloQt程序吗?

希望回答对您有帮助.

如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的。这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助。注意如果使用miongw的话,gcc版本最好不要是4.6.2。这个版本比较特殊,但是它是mingw官方版的最新打包版本。

如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好。

方法一:解决跨设备无库文件,exe无法正常运行的问题。

1、Qt程序采用release方式编译发布;拷贝".exe"目录整个文件夹。

2、以管理员方式 运行QT命名行 (电脑桌面->开始->搜QT->进编译器) "Qt 5.9.9 (MSVC 2017 64-bit)",

3、 cd /d (+)".exe"跟目录文件路径     例如:cd /d C:\Users\86131\Desktop\release  ,定位至exe文件目录。

3、 windeployqt (+)”.exe“的程序名称     例如:windeployqt rtpPlayer.exe   ,自动将应用所需的库添加至.exe文件中。

拷贝此文件夹全部内容至其他设备,exe文件可直接正常运行。

方法二:打包成一个exe文件。

1、按方法一先添加好全部库文件。

2、运行"Enigma Virtual Box"软件,

①选择exe文件路径;

②设置打包后的exe文件的保存路径;

③将所有文件全选后拖拽至列表"add Folder Recursive"整个文件夹(可直接打开含库文件的release文件夹,全选文件夹内所有文件,拖拽至"Enigma Virtual Box"软件文件列表)

④建议压缩后执行。执行完成后会在相应路径生成打包好的exe文件,如过库文件齐全、压缩步骤正确,即可在不同设备上正常运行打包后的exe程序。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7881586.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存