5

我在 Widows 7 上使用 Qt 库编写了一个简单的对话框。现在我需要将该.exe文件发送给我的朋友,以便他可以使用它。但我也需要发送大约 10 个.dll文件,以便他可以使用它。我已经找到了所有并发送了,但他无法打开它。有一些“Visual C++ 运行时错误”。坦率地说,在我的另一台计算机上,我也无法以同样的错误打开它。我用谷歌搜索了很多,并找到了不同的答案,例如:

  1. 更新 DirectX
  2. 安装 Microsoft Visual C++ 2010 Redistributable Package (vcredist_x86.exe)

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

  1. 为什么它可以在我开发了该对话框的计算机上运行,​​即有什么问题?
  2. 我怎样才能摆脱所有购买轻松.dll将其编译成一个文件的东西?.exe
4

2 回答 2

5

1.为什么它可以在我开发了该对话框的计算机上运行,​​即有什么问题?

因为您的计算机上安装了 VC Runtime。

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

a.您需要使用 MultiThread(MT) 而不是 MultiThreadDLL(MTD) 编译 QT 和您的 exe。

b.在您朋友的计算机上安装 vc 运行时。

2.我怎样才能摆脱所有的 .dll 东西买容易编译成一个 .exe 文件?

您必须将所有 QT dll 构建到库中(whit 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/deployment-windows.html
于 2013-03-01T09:12:53.150 回答
1

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

我复制了“C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin”目录中的所有 dll,但在将“platforms/qminimal.dll”和“platforms/qwindows.dll”添加到我的 . exe程序。

于 2013-03-21T14:47:12.557 回答