Qt的exe放到其他电脑上无法运行问题
我的电脑配置:win10
开发环境:VS2019+Qt5.14.2
问题:程序开发完成后将debug下的.exe发给其他同事使用,回复说“找不到VCRUNTIME140.dll……”问题
网上找了下解决该问题的办法,很多,最终选了下面的方法:
方法三:选择静态编译。项目属性-配置属性-C/C+±代码生成-运行库-多线程调试(/MTd)。(解决问题)。
这样是设置为静态编译,让dll写进exe内,没有外部库也可以运行
静态编译在程序编译时dll会被连接到目标代码中,程序运行时将不再需要该静态库。
动态编译在程序编译时dll并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
vs默认为动态编译
自己将该exe放到未装qt电脑上测试,仍不行报Qt5Widgetsd.dll等错误,试试网上说的用发布版本release版本测试仍不行,后将缺失的dll全放到.exe下,不报dll错误,却报
然后网上查了很多方法,大多是将.exe拷到新的文件夹下,然后在“开始”菜单下找Qt运行Qt XX for Desktop或运行Qt XX(MinGw XX 32/64-bit),但在自己电脑上始终找不到这两个文件,在想是不是安装时没选择安装,正在考虑要不要重新装时,搜到一篇是用Qt xx 64-bit for Desktop(MSVC 2013),然后试试自己电脑上的 Qt 5.14.2 (MSVC 2017 32-bit),结果可以。在想是不是每个版本对这个功能的名称不一样^^
现将解决方法记录如下:
1、打开Qt 5.14.2(MSVC 2017 32-bit)
2、进入.exe所在路径(我将生成的.exe放到新建文件夹workspace下)
3、直接输入windeployqt XX.exe,回车即可(windeployqt是QT提供的工具可以直接搜索拷贝需要的dll,该文件在安装目录的bin文件下)
如下:
运行完成后,会发现新文件夹下多了很多文件夹和dll
之后网上下载传送手Enigma Virtual Box
Browse…选择需要打包的exe,下面为打包完成之后的名称,再将其他拷贝过来的所有文件拉到Files下,process即可。将新打包成的exe放到其他未装QT电脑上即可运行成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言