问题描述:
编写的程序在IDE中可以成功生成debug和release版本,但是在直接打开exe时报错。已知所有第三方的库均已拷贝到当前目录下。
问题排查:
1、一开始怀疑是犹豫程序中同时用到了两个版本opencv库,导致程序无法定位入口。后来在别的机器上可以生成也可以正常打开。初步判断是Qt本身的库版本混乱的问题。
2、将环境变量中所有qt相关的路径全部删除,单独拿出exe文件进行windeployqt部署,命令行显示在“d:\ProgramData\Anaconda3\Library\bin”下无法找到Qt5widget等一系列qt库。
破案了,qt库被定位到了Anaconda3的运行库位置,而Anaconda3的QT版本与QTCreator版本不一致,所以出现了两个版本的dll,导致程序混淆。
问题解决:
将所使用版本的QT库的路径移动到环境变量最上方,即可解决问题。(图中msvc2015_64)