2013-03-01 115 views
4

我已经写了一个简单的对话框在寡妇7上使用Qt库。现在我需要发送该.exe文件给我的朋友,所以他可以使用它。但我也需要发送大约10个.dll文件,以便他可以使用它。我发现了所有这些,并发送了,但他无法打开它。有一些“Visual C++运行时错误”。坦率地说,在我的另一台电脑上,我无法打开它,或者出现同样的错误。我用Google搜索了很多,并已发现不同的答案,如:Qt构建到一个单独的exe文件没有dll

  1. 更新的DirectX
  2. 安装Microsoft Visual C++ 2010再发行组件包(选择vcredist_x64.exe)

但是这一切并不能帮助我。所以我的问题是:

  1. 为什么它的作品在我的电脑,我已经开发了对话框,即是什么问题?
  2. 我该如何摆脱所有.dll的东西,很容易将其编译成一个.exe文件?
+1

您有没有看过这篇文章:http://qt-project.org/wiki/Build_Standalone_Qt_Application_for_Windows? – 2013-03-01 09:02:37

+0

或在Windows上部署: http://qt-project.org/doc/qt-4.8/deployment-windows.html – Pete 2013-03-01 09:19:10

+0

也许还可以创建一个安装程序。我喜欢innosetup:http://www.jrsoftware.org/isinfo.php – Pete 2013-03-01 09:20:04

回答

5

1.为什么它在我的计算机上工作,我开发了那个对话框,即什么问题?

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

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

a.you需要编译QT,并与多线程(MT)你的EXE,而不是MultiThreadDLL(MTD)。

b.install vc运行时在你朋友的电脑上。

2.我该如何摆脱所有.dll文件,轻松将其编译到一个.exe文件中?

你必须建立所有的QT dll到libs(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
+0

但我试图安装VC运行时(vcredist_x86.exe我猜)在我的另一台电脑上,它没有帮助。为什么? – Narek 2013-03-01 11:14:50

+0

确保您为编译器安装了正确的运行时。对于x64和32位,每个编译器版本都有不同的运行时间,甚至服务包的运行时间也不同。最重要的是,确保您使用与构建应用程序完全相同的编译器构建了Qt。 – drescherjm 2013-03-01 12:56:00

+0

如果所有这些都满足,我将运行depends.exe来尝试确定缺少的内容。 – drescherjm 2013-03-01 12:56:38

相关问题