我的电脑配置: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错误,却报

qt 调用python 拷贝 qt拷贝后无法运行_程序运行

然后网上查了很多方法,大多是将.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文件下)

如下:

qt 调用python 拷贝 qt拷贝后无法运行_程序运行_02


运行完成后,会发现新文件夹下多了很多文件夹和dll

qt 调用python 拷贝 qt拷贝后无法运行_程序运行_03

之后网上下载传送手Enigma Virtual Box

qt 调用python 拷贝 qt拷贝后无法运行_qt 调用python 拷贝_04

Browse…选择需要打包的exe,下面为打包完成之后的名称,再将其他拷贝过来的所有文件拉到Files下,process即可。将新打包成的exe放到其他未装QT电脑上即可运行成功