最近碰到好多人问关于WINDOWS上的QT打包后在自己电脑上可以运行,换台电脑报各种错误的问题。于是特地写个帖子总结下一些问题:
首先是打包QT,将QT的系统库拉出来。
这里可以借用windeployqt工具。
打包参考(其他平台打包也可以用对应平台的这个工具):
https://blog.csdn.net/DFSAE/article/details/78615121
他是QT目录下的工具,但他会把对应的QT相关的库文件都拉过来。所以也要注意工具拉的位数,比如我用msvc2017_64\bin和msvc2017_32\bin下的windeployqt.exe打包出来库的位数是不一样的,不过32位的库可以跑在64位上。
其实后面很多报错都是出在系统位数上。
错误1:
报错:
无法启动此程序,因为计算机中丢失MSVCR120.dll。尝试重新安装台程序已解决此问题。
错误2:
报错:
无法启动此程序,因为计算机中丢失vcruntimexxx.dll。尝试重新安装台程序已解决此问题。
原因:
其实这两个错误的本质是一样的。都是VC相关的库,和软件用VS编译有关的库,对应的版本也不一样。应该是要部署的机子上的这个库被阉割了或者丢失了这样的。