背景描述:
Vs2017 + QT5.14.1 + cuda11.1和cudnn的环境
某一天程序突然出现程序无法运行,无法运行之前提示缺少各种dll,加上各类的Dll之后程序直接无法运行,让人很是无语。
分析:
1、缺哪些dll我直接就去磁盘下搜索dll,搜到后直接拿过来用,但是程序分64位和32位,dll是没有直接标明这个是64位还是32位,随意拉动dll会导致编译通过,但是运行环境一团乱麻,运行不起来。
2、VS环境问题,(一般重装完系统后会缺,如果你是重装完系统可以考虑下载一下)
VC2019_redist.x64.exe
VC2019_redist.x86.exe
打开控制面板-程序 观察是否缺少
Microsoft Visual C++2015…
我的电脑装的是VS2017 ,至少需要装2015(这个是个什么玩意儿我也不是很清楚,但是运行的必须环境,必须要安装,没有的话可以装一个高版本的2019,里面包括了2015的这些东西)。
要不然会提示我缺少各种dll, 很诡异,见都没见过。
3、cuda和cudnn的安装
之前为了图省事,直接用别人封装好的全部的cuda的dll,一直没出问题是因为可能那个项目正好没事儿,但不能抱侥幸心理。
我电脑上装的cuda11.1 版本和 对应的cudnn,装完cuda以后要把cudnn里面对应的dll和lib 还有头文件全部也要复制到对应的cuda下面,不然会提示缺少cudnn的dll的。
4、外部库的dll影响
如果是引入了外部库的lib和dll,可以先把项目里引入的lib和dll先去除一下,然后再排除一下是不是因为引入了外部库的原因,有时候外部库的dll会因为其32位和64位搞混,不能随便引入其dll,一定要清楚的知道缺少的是什么位数下的dll,到底是32位还是64位。
5、配置系统环境变量
比如:一般装完Qt以后,在系统环境变量下要引入bin目录下的dll。