Qt构建到一个没有dll的单个exe文件

Qt build to a single exe file without dlls

本文关键字:dll 单个 文件 exe 一个 构建 Qt      更新时间:2023-10-16

我在Widows 7上使用Qt库编写了一个简单的对话框。现在我需要把.exe文件发给我的朋友,这样他就可以使用它了。但是我还需要发送大约10个.dll文件,这样他才能使用它。我已经找到了所有的信,送去了,但他打不开。有一些"Visual c++运行时错误"。坦率地说,在我的另一台电脑上,我也无法打开它,出现了同样的错误。我用谷歌搜索了很多,找到了不同的答案,比如:

  1. 更新举
  2. 安装Microsoft Visual c++ 2010可重新分发包(vcredist_x86.exe)

但这一切都没有帮助我。所以我的问题是:

  1. 为什么它在我的电脑上工作,我已经开发了这个对话框,即什么是问题?
  2. 我怎么能摆脱所有的.dll的东西编译成一个.exe文件容易?

1。为什么它在我的电脑上工作,我已经开发了这个对话框,即什么是问题?

因为你的计算机上安装了VC运行时。

有两种方法可以解决这个问题,

。你需要编译QT和你的exe与多线程(MT),而不是多线程dll (MTD)。

b。在你朋友的电脑上安装vc runtime

2。我怎么能摆脱所有的。dll的东西编译成一个。exe文件容易吗?

您必须将所有QT dll构建到库中(白色MT),并将您的exe与这些库链接。

这很耗时。而且你仍然需要windows dll。无论如何,如果你仍然想静态地链接Qt,这些链接可能非常有用:

  1. http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc
  2. http://qt project.org/doc/qt - 4.8 -/-部署- windows.html

这个链接帮助我找到解决方案。https://bugreports.qt - project.org/browse/qtbug - 28766

我复制了"C:QtQt5.0.15.0.1mingw47_32bin"目录下的所有dll,但在将"platforms/qminimal.dll"answers"platforms/qwindows.dll"添加到我的。exe程序后,所有dll都解决了。