建设网站的价格,腐女喜欢做的网站,网站需要多大的空间,做seo如何赚钱目录 本地环境问题描述分析解决方案 本地环境 本文将不会解释如何利用Qt5编译生成release类型的可执行文件以及如何利用windeployqt生成可执行的依赖库#xff0c;请自行百度。 环境值操作系统Windows 10 专业版#xff08;22H2#xff09;Qt版本Qt 5.15.2Qt Creator版本5.0… 目录 本地环境问题描述分析解决方案 本地环境 本文将不会解释如何利用Qt5编译生成release类型的可执行文件以及如何利用windeployqt生成可执行的依赖库请自行百度。 环境值操作系统Windows 10 专业版22H2Qt版本Qt 5.15.2Qt Creator版本5.0.2编译器版本g (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 7.3.0发布类型releasewindeployqt 版本Qt Deploy Tool 5.12.12
问题描述
编写完程序后直接利用Qt Creator发布release版本的可执行文件exe后缀随后再执行如下命令获取与可执行文件相关的依赖库
windeployqt [可执行文件]发现确实生成一大堆*.dll总目录大小高达900MB
双击*.exe文件提示无法定位程序输入点_ZN10QArrayData10deallocateEPs_yy
分析
起初以为是编译器版本不对的问题仔细对比了我用windeployqt工具时进入的环境以及我在Qt creator软件编译的环境发现并没有什么问题但是网上采用同样的方式均能成功运行*.exe文件百思不得其解。
后来我根据**关键词Qt 无法定位程序输入点**寻找解决方案大部分是描述依赖库的问题我随便拿了一个动态库libstdc-6.dll比对了我手头其他MinGW的环境发现其实生成的这个动态库确实是编译环境中的依赖库并没有出错。
此外我还以为是本机的问题便尝试将该文件以及依赖库传输到另外一台电脑运行发现依然是同样的问题还注意到了这些文件居然高达900MB这我开始怀疑是不是发布的包选错了我写的程序仅仅几个文件后续还是没有发现有什么错误的点。
当我重新使用windeployqt生成时瞧了一眼日志信息嘿居然是以debug executable模式生成依赖库的 所以这肯定是会出现问题的一个以Release方式生成的可执行文件依赖库却按debug executable模式构建必然出现这种找不到程序入口的问题。
解决方案
在使用windeployqt工具构建依赖库时强制它使用release模式
windeployqt [可执行文件] --release这样就没有问题了可以看到生成的这些依赖库以及可执行文件总大小才几十兆未优化