以前写的简单程序,用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位库了。
总结一下:
扫描二维码关注公众号,回复:
9186236 查看本文章
windeployqt帮我找到qt的依赖库
我们选择第三方库,自己就带了依赖库
如果用了vc相关的库,目前也没有别的方法,反正我是一个个搜出来的
最重要的是不要弄混了位数