
使用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程序。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)