QT生成的程序无法运行或者缺少dll

684 阅读2分钟



QT程序发布的一个问题与解决方案

 

双击release下的exe文件报错,无法定位程序输入点与动态链接库QtCore4.dll上,

而debug下没问题.将release下的exe文件拷到qt的bin目录下,再双击就没问题了

 

原因与解决方案:

编译时用的dll不是QT/bin中的dll,而用得是QT/qt/bin中的QtCore4.dll,Qtgui4.dll和mingwm10.dll,把QT/qt/bin中的这三个Dll拷入release中,问题就解决了.

\

另一种办法: 转自blog.163.com/dongjuan_11…

\

最后发现了通过环境变量,可以一劳永逸的方法。

QT安装以后,系统环境变量Path有两条:C:\Qt\Qt5.7.0\5.7\msvc2013_64\bin ;

因为编译时用的dll不是QT/bin中的dll,而用得是QT/qt/bin中的QtCore4.dll,Qtgui4.dll和mingwm10.dll,因此需要将这两条环境变量改为C:\Qt\Qt5.7.0\5.7\msvc2013_64\bin****

同时将两条添加到用户环境变量Path中。

搞定。

\

\

还有一种: 转自 blog.sina.com.cn/s/blog_670f…

\

问题:

双击release下的exe文件报错,无法定位程序输入点与动态链接库QtCore4.dll上,而debug下没问题 将release下的exe文件拷到qt的bin目录下,再双击就没问题了.

 ​

我的回复:

我也出现了这个问题.
原因很有可能是你环境变量中的系统变量PATH设置问题.
我开始安装QT没有出现这个问题,用了一段时间就出现罗.
觉得是 QtCore4.dll 链接错误,意思是说 release下的可执行程序链接的QtCore4.dll不是QT安装目录下的/bin中的QtCore4.dll.
后来一查找,发现最近安装的CTEX软件中也有QtCore4.dll,找到原因了.
所以,把qt下的库路径添加到我CTEX库路径之前,就解决问题啦.

 ​

这是一种典型的动态库连接错误问题.动态链接库QtCore.dll有多个版本,发生冲突.