qt打包后,其他机器上运行报错

以前写的简单程序,用windeployqt打包就能把QT相关依赖项找到了,但是随着项目的推进,依赖了越来越多其他库,甚至还有vc的库,根据程序运行失败的各种符号链接的提示,从本地windows\system32目录下找到了

msvcp140d.dll
ucrtbased.dll
vcruntime140d.dll
concrt140d.dll

然后问题又来了,双击后程序

应用程序无法正常启动(0xc000007b)

后来想了一下,自己的程序时32位的,系统时64位,那么系统里的库会不会位数不一样,于是我用vs2017的命令行

dumpbin /headers C:\Windows\System32\msvcp140d.dll

果然位数不匹配,32位程序不能依赖64位库,于是就想用vs自带的32位库,从vs2017的安装目录一个一个搜出来了

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community

但是urtbased.dll又搜不到了,于是直接从C:\Program Files (x86)目录里面中,搜出来很多,一个一个看,找到一个x86\urt目录下的32位库了。

总结一下:

windeployqt帮我找到qt的依赖库

我们选择第三方库,自己就带了依赖库

如果用了vc相关的库,目前也没有别的方法,反正我是一个个搜出来的

最重要的是不要弄混了位数

发布了275 篇原创文章 · 获赞 46 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/youyudexiaowangzi/article/details/104200902