3

我想给我的一个朋友一个小项目的发布版本。从 qtcreator 内部启动时它工作得非常好,但在双击 .exe 文件时无法打开。它甚至没有给我一条错误消息。

现在,当我尝试在我的 exe 文件旁边复制一些 Qt .dll 文件(如 Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll)时,它并没有改变任何东西。我如何知道我的项目有哪些依赖项?.pro 文件并没有告诉我太多

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = project1
TEMPLATE = app


SOURCES += main.cpp\
    mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

我正在使用基于 Qt 5.0.0(32 位)的 Windows 7(64 位)、Qt Creator 2.6.1

感谢您的帮助萨迪克

编辑:解决方案可以在我的回答中看到

4

4 回答 4

4

解决了!我所要做的就是下载“ libEGL.dll ”并将其放在我的exe文件所在的目录中。当然也需要来自 qt 的所有其他 .dll 文件。但是这些在错误消息中明确提到。但是对于“ libEGL.dll ”,甚至没有错误消息。可以忽略“dependency walker”中列出的 .dll 文件。对于我的问题,这个工具并没有真正帮助。它没有列出 libEGL.dll,但列出了其他实际上未使用的 .dll 文件。

于 2013-01-27T01:51:09.980 回答
2
How can I know what dependencies my project has?

您可以使用官方网站上的程序Dependency Walker来查看您的程序需要什么 dll。

注意使用相同版本的 Qt dll(如果您使用 Qt5,请从 Qt5 的bin目录中找到您的 dll,依此类推)。

于 2013-01-26T14:33:45.700 回答
2

由于您在谈论 Qt5,请确保您有一个platforms目录,该目录至少qminimal.dll位于您的 program.exe 文件的目录中。它们是对 Qt 所做的新更改的一部分。(也可能qwindows.dll)。

msvcr*.dll此外,如果您不使用静态链接进行编译,请确保包含适当的dll。检查依赖walker。

/myProgram.exe 
/Qt5Gui.dll
/Qt5Core.dll
/ .... (other DLLs you require)
/platforms/qminimal.dll
/platforms/qwindows.dll (Not always required)
于 2013-01-26T19:41:17.453 回答
1

你用的是什么编译器?如果您使用 MSVC++,则需要为编译器捆绑运行时 DLL 文件或让用户安装 Microsoft Visual C++ Redistributable Package。

于 2013-01-26T14:34:34.420 回答