qtcreator - EXE确实做工精细的内部qtcreator但外面不(qtcreator

2019-07-18 18:34发布

我想给我的一个朋友一个小项目的发布版本。 从内qtcreator开始时,工作完全正常,但是当.exe文件双击不能打开。 它甚至没有给我一个错误消息。

现在,当我试图复制一些Qt的.dll文件(如Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dll)我旁边的exe文件,它并没有改变任何东西。 我怎样才能知道哪些依赖我的项目有? 该.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的工作在Windows 7(64位),Qt Creator的2.6.1(32位)

感谢您的帮助萨迪克

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

Answer 1:

解决它! 所有我需要做的就是下载“libEGL.dll”,并把它在我的exe文件所在的目录。 当然是需要从QT所有其他.dll文件,太。 但是,这些是在一个错误信息中明确提到。 但对于“libEGL.dll”竟然没有一个错误信息。 在“依赖学步车”中所列示的.dll文件可以忽略不计。 对于我的问题,这个工具并没有真正的帮助。 它没有列出libEGL.dll但列出的其他.dll文件这实际上是未使用的。



Answer 2:

How can I know what dependencies my project has?

您可以使用程序的Dependency Walker从官方网站 ,看看有什么DLL的程序需要。

相同版本的NB使用Qt的DLL(如果你使用QT5,找到QT5是你的DLL bin目录等)。



Answer 3:

既然你是在谈论QT5,确保你有一个platforms目录至少qminimal.dll它在你的Program.exe文件的目录位置。 他们是Qt的国产新变化的一部分。 (可能qwindows.dll以及)。

此外,请确保你有适当的msvcr*.dll动态链接库,如果你用它做任何编译静态链接。 请与Dependency Walker中。

/myProgram.exe 
/Qt5Gui.dll
/Qt5Core.dll
/ .... (other DLLs you require)
/platforms/qminimal.dll
/platforms/qwindows.dll (Not always required)


Answer 4:

您正在使用什么编译器? 你需要捆绑运行时DLL文件的编译器或者,如果您使用MSVC用户安装Microsoft Visual C ++再发行组件包++。



文章来源: qtcreator - exe does work fine inside qtcreator but doesn't outside