无法定位程序输入点于动态链接库上的问题
用 QtCreator 编译好了程序的 release 版本,拷贝至文件夹中,双击运行,弹出如下的错
误
这是因为没有将程序运行所依赖的动态链接库拷贝至文件夹中。使用 windeployqt 命令
得到了程序所依赖的库,可是一运行,仍旧出现上面的问题。
经过查找,知道了问题的根源。本机上安装了两个版本的 Qt,一个是 Qt for msvc2015
的,一个是 Qt for minGW 的,我运行的程序是 minGW 编译的。在安装 Qt 时,这两个版本
的目录都加入了环境变量的路径中,但是 Qt for msvc2015 的在前面,Qt for minGW 的在后
面。
使用 windeployqt 命令拷贝依赖库时,首先找到了 Qt for msvc2015 的目录,于是就把里
面的动态库拷贝了过来,但是由于本程序是用 minGW 编译的,所以那些动态库根本不符合,
所以仍旧提示无法定位程序输入点于动态链接库上。从环境变量里面删掉 Qt for msvc2015
版本的路径,只保留 Qt for minGW 版本的路径,重启计算机,再使用 windeployqt 命令,程
序就可以正常运行了。
需要注意的是,更改了环境变量后,需要重启计算机才能生效。刚开始遇到这个问题时,
我也曾想到过可能是环境变量中路径的问题,但是更改了环境变量之后,该问题依然存在,
后来突然想到,可能需要重启计算机才能生效的,于是重启了计算机,这个问题才得以解决
了。
评论0