我想给我的一个朋友一个小项目的发布版本。 从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
感谢您的帮助 萨迪克
编辑:解决方案可以在我的回答中看到
答案 0 :(得分:4)
解决了!我所要做的就是下载“ libEGL.dll ”并将其放在我的exe文件所在的目录中。当然还需要来自qt的所有其他.dll文件。但是在错误消息中明确提到了这些。但对于“ libEGL.dll ”,甚至没有错误消息。 可以忽略“dependency walker”中列出的.dll文件。对于我的问题,这个工具并没有真正帮助。它没有列出libEGL.dll,但列出了其他未实际使用的.dll文件。
答案 1 :(得分:2)
How can I know what dependencies my project has?
您可以使用official site中的程序 Dependency Walker 来查看您的程序需要什么dll。
NB 使用相同版本的Qt dll(如果你使用Qt5,从Qt5的bin
目录中找到你的dll,依此类推。)
答案 2 :(得分:2)
由于您正在讨论Qt5,请确保您的program.exe文件目录中的platforms
目录至少包含qminimal.dll
。它们是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)
答案 3 :(得分:1)
您使用的是什么编译器?您需要为编译器捆绑运行时DLL文件,或者让用户在使用MSVC ++时安装Microsoft Visual C ++ Redistributable Package。