问题
如题,用qt5.12-mingw730-64+gdb8.1调试opencv函数,发现编译正常通过,但是调试时gdb会异常退出,无法执行任何opencv函数。
可能原因
qt的dll文件所在的目录(QtCore.dll等)、opencv的dll文件所在目录,可能没有在windows的系统目录中,导致gdb运行时找不到这些dll文件,所以异常退出。
解决方法
将qt的安装目录下的dll所在文件夹、opencv的dll文件所在文件夹均加入windows的系统目录中。( 我的电脑右键-属性-高级系统选项-环境变量-系统-Path,把这两个路径添加进去 ),然后重启qt。
解决过程记录
用去了我两天的时间解决这个问题,实在是惨痛的教训,记录一下前因后果:
1、很久没有用这个环境来工作,为了腾出电脑空间,删了很多东西,删除了一些不必要的系统路径,所以导致qt无法正常工作。
2、在百度中搜索很多次,没有找到有用的信息,很是不解:明明国内用opencv的好多呀!自己尝试了重装系统、重装qt,蒸腾了几次,熬夜到凌晨两点,工作延误,健康损失、信任度损失、心情损失,实在是损失惨重。
3、最后灵感来自:爬梯子(fotiaoqiang.exe,you are welcome!)后,google到好多答案,其中一个:命令行用gdb,发现dll文件找不到,把dll文件复制过来即可。于是也用命令行试了一下gdb运行调试,结果果然是很多dll文件找不到,于是把那些dll文件所在目录设置为系统目录,问题解决。
总结
学好英语还是很有用的,多走出去,还是很有用的!
祝大家好运!