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

Nar*_*rek 5 c++ windows dll qt runtime-error

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

  1. 更新DirectX
  2. 安装Microsoft Visual C++ 2010可再发行组件包(vcredist_x86.exe)

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

  1. 为什么它在我开发该对话框的计算机上工作,即问题是什么?
  2. 我怎样才能摆脱所有这些.dll东西,.exe轻松将其编译成一个文件?

neo*_*ope 5

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

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

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

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

b.在你朋友的电脑上安装vc运行时.

2.我怎么能摆脱所有那些.dll的东西买它很容易编译成一个.exe文件?

你必须在libs(whit MT)中构建所有QT dll,并将你的exe与这些lib链接起来.

这很费时间.你仍然需要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