2010-08-03 90 views
6

我使用Qt Creator编写了一个C++项目。一切工作正常(调试,发布),但是当我直接运行编译.exe(去exe文件并运行它)它说mingwm10.dll丢失。Missing mingwm10.dll

我该怎么解决这个问题?

回答

6

这里是你能做什么:

  • chalup说,把你MINGW bin目录到您的局部/全局PATH变量这样的:我的电脑|系统属性|上级篇|环境变量|系统变量 - 选择PATH字符串并按编辑按钮。对话框出现后,加上类似的东西 - C:\ MinGW的\ BIN

  • 建立你的应用,而无需MinGW的,例如用Qt libraries 4.6.3 for Windows (VS 2008, 194 MB)

  • 只需将mingwm10.dll到目录与可执行文件

+0

如果我们在不安装qt的情况下在不同的系统中使用该exe文件,第一次问它mingw10.dll.if我们将它复制到目录,它会询问其他的dll文件。如果我们复制所有依赖的dll文件,它会显示错误消息。然后如何解决这个错误,而无需安装qt andmingw?否则我们的程序将依赖于mingw。 – 2011-06-23 06:24:16

+0

@KIRAN你可以创建静态EXE(内部包含Qt和mingw库)(这会增加EXE的基本大小,但不再需要更多的DLL),或者你可以构建静态EXE(不支持mingw的静态Qt - 这意味着当你用'configure'&'make'方法构建静态Qt库时,但你必须设置标志'configure -no-exceptions ...' - 我不太确定 - 最好检查一下) – mosg 2011-06-23 07:45:11

+0

确实你的意思是在.pro文件中?如果是的话,如何添加no-exeption?........谢谢 – 2011-06-23 11:13:36

2

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

+0

哪里? ........... – Snoob 2010-08-03 13:40:30

+0

我不知道从头开始的路径,但它位于SDK安装的某个位置,例如$ QTDIR/MinGW的/ lib目录下。我会在资源管理器中搜索它,然后将其复制到.exe旁边。 为了分发,将dll添加到已发货的Qt dll中。 – 2010-08-03 14:47:34

+1

为了更加精确:我在我的电脑上找到了'C:\ Qt \ 2010.02.1 \ qt \ bin \ mingwm10.dll'。 – ereOn 2010-08-12 12:12:13

1

如果您使用Qt的LGPL,你应该更好地接受你的EXE几个DLL文件。实际上它并不是那么糟糕。 否则,您可以自由地将Qt编译为静态库或使用Microsoft编译器。 删除所有makefile中的“-mthreads”可能会有所帮助,但可能不会,尤其是在线程之间使用异常时。