【发布时间】:2014-04-07 08:03:07
【问题描述】:
我已经制作了一个 Qt 应用程序。我已将必要的 dll 复制到应用程序文件夹中,例如 QT5CORE.DLL 、 QT5GUI.DLL 、 QT5WIDGETS.DLL 但应用程序要求提供诸如 Qt5Positioning.dll、Qt5Sensors.dll、Qt5PrintSupport.dll、Qt5Qml.dll 等 dll 等,即使它们不在程序中使用。 我在应用程序启动时收到此类错误 “此程序无法启动,因为您的计算机中缺少 blahblah.dll。重新安装可能会解决此问题。”
我在 Qt5.2.1 中遇到此错误,我正在使用 VS 2010。
这是 .pro 文件:
TEMPLATE = app
TARGET = mainwindow
DESTDIR = ../Win32/Release
QT += core network widgets gui webkitwidgets
CONFIG += release
DEFINES += WIN64 QT_DLL QT_NETWORK_LIB QT_WIDGETS_LIB QT_WEBKITWIDGETS_LIB
INCLUDEPATH += ./GeneratedFiles \
. \
./GeneratedFiles/Release
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/release
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(mainwindow.pri)
win32:RC_FILE = mainwindow.rc
【问题讨论】:
-
您在使用 Qt Plugin for Visual Studio 吗?如果是这样,您可以检查应用程序中包含的模块的 Qt 项目设置。也许那里出于某种原因检查了所需的那些。
-
您也可以将 Qt bin 文件夹添加到您的 PATH 中。 VS2010 会在链接过程中自动在该目录中查找 DLL。
-
是的,我正在使用 Qt Plugin for Visual Studio。我在创建项目时选择了以下 Qt 模块:Core、GUI、Network、Webkit Widgets、Widgets。我没有选择任何其他模块,但为什么应用程序要求提供 dll 文件,例如 Qt5Multimedia.dll、Qt5Qml 等?
-
@ManuelH 我已经添加了路径并且在 VS 中运行良好。但我想发布我的程序,不想将这些不必要的 dll 与我的程序一起发布。
-
你肯定没有使用任何可能来自这些 dll 的函数?我不确定它们属于哪个模块,以及是否需要在设置中检查其他模块。如果不是,请尝试取消选择一些并重新编译