问题描述(一)
QT引用外部库,debug、release均编译通过,但是运行程序时失败,报错提示为:程序异常结束,The process was ended forcefully.
21:44:21: 程序异常结束。
21:44:21: The process was ended forcefully.
原因分析:
调用外部的dll文件失败,因此要将对应的dll添加进debug文件夹中。
解决方案:
如何找到对应的调用失败的dll文件,在QT运行代码后会bulid相应的文件,在该bulid文件夹下,找到debug文件夹,在其中找到项目生成的exe文件,直接点击运行,根据提示找的缺少的dll,将其复制到debug文件夹下即可。
问题描述(二)
解决问题以后,运行代码依旧异常结束,但是运行exe文件时不提示缺少dll
21:44:21: 程序异常结束。
21:44:21: The process was ended forcefully.
原因分析:
在.pro中配置存在小问题,这种问题只能大家根据自己代码的情况一点点排查,我的问题是重复添加了ucrt这个库文件。
1 CUDA_LIB_NAMES += cublas \
2 cuda \
3 ucrt\
4 odbccp32 \
5 MSVCRT \
6
7 # debug and release need different ucrt lib
8 CONFIG(debug, debug|release) {
9 CUDA_LIB_NAMES += ucrtd \
10 }
11 else{
12 CUDA_LIB_NAMES += ucrt \
13 }
解决方案:
由于在debug时使用的是ucrtd文件,但是ucrt被我之前加入到LIBS中了,因此将前面的ucrt\
删除即可