缺失 mingwm10.dll

7

我正在使用Qt Creator编写一个C++项目。一切都正常(调试、发布),但是当我直接运行已编译的.exe文件时(进入exe文件并运行),它会提示缺少mingwm10.dll。

我该怎么解决这个问题?

4个回答

6

以下是您可以执行的操作:

  • chalup所说的那样,将MINGW bin目录放置在本地/全局 PATH 变量中,方法如下: 计算机|系统属性|高级|环境变量|系统变量 - 选择 PATH 字符串并单击 编辑 按钮。对话框出现后,添加类似于这样的内容- C:\MinGW\bin。

  • 使用其他方式(例如使用 Qt libraries 4.6.3 for Windows (VS 2008, 194 MB))构建您的应用程序,而不是使用 mingw。

  • 只需将 mingwm10.dll 放置在可执行文件所在的目录中即可。


如果我们在没有安装Qt的不同系统中使用该exe文件,第一次它会要求mingw10.dll。如果我们将其复制到目录中,它将要求其他dll文件。如果我们复制所有依赖的dll文件,它会显示错误消息。那么如何在不安装Qt和mingw的情况下修复此错误?否则,我们的程序将依赖于mingw。 - KIRAN K J
@KIRAN 你可以构建静态 EXE(内置 Qt 和 mingw 库)(这将增加 EXE 的基本大小,但不再需要 DLL),或者你可以构建静态 EXE(不带 mingw 支持的静态 Qt - 这意味着当您使用 configuremake 方法构建静态 Qt 库时,但您必须设置标志 configure -no-exceptions ... - 我不是很确定 - 最好检查一下)。 - mosg
@KIRAN 不,我说的是首先构建Qt静态库(http://doc.qt.nokia.com/4.1/deployment-windows.html),以便能够构建静态程序。在构建静态Qt时,您可以使用“-no-exceptions”标志关闭mingw依赖项。之后,您只需要构建项目即可! - mosg
对于使用 wxWidgets 而不是 Qt 的用户:DLL 文件可以在 wxFormBuilder\mingwm10.dll 下找到。 - Olivier Faucheux

2
您需要将mingwm10.dll的位置添加到环境变量PATH中。

我不记得路径,但它应该在SDK安装文件夹里的某个地方,例如$QTDIR/mingw/lib。我会在资源管理器中搜索它,然后将其复制到.exe旁边。 如果要进行分发,请将dll放入Qt dlls文件夹中。 - Frank Osterfeld
1
更加准确地说:我在我的电脑上找到它位于 C:\Qt\2010.02.1\qt\bin\mingwm10.dll - ereOn

1

1
如果您使用LGPL的Qt,最好将一些DLL与您的EXE一起接受。实际上并不那么糟糕。 否则,您可以自由地将Qt编译为静态库或使用Microsoft编译器。 在所有makefile中删除“-mthreads”可能有所帮助,但也可能没有,特别是如果您在线程之间使用异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接