首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt应用加载自定义插件调试库失败

Qt应用加载自定义插件调试库失败
EN

Stack Overflow用户
提问于 2014-05-09 08:02:34
回答 1查看 1.3K关注 0票数 1

我的问题是:

为什么我的测试应用程序在Release中运行时,不加载插件DLL的调试(-d)版本,而只加载发布版本?

背景:

我正在构建一个自定义的Qt设计器插件QDragableToolBox;我正在用一个非常简单的Qt应用程序对它进行测试。我链接到我的插件库,如下面的.pro代码所示。

我的插件在发布模式下工作得很好。当我尝试在Debug中运行时,测试应用程序无法通过插件的构造函数,并在没有警告或错误的情况下结束。我以前在Debug/Release库冲突中见过这种情况,因此使用Dependency Walker来检查可执行文件正在搜索哪个库。果然,它正在寻找的是发行库,而不是附加了'd‘的Debug库。

通过从Debug DLL的文件名中删除'd‘,我进一步确认了这一点。完成此操作后,测试应用程序将完美运行。我知道,在这种情况下,它实际上是在加载Debug库,因为我已经包含了一个消息框弹出窗口,说明了库类型(Debug与Release)。

如果需要,我可以发布实际的代码,但我不认为这与问题有关,因为发布效果很好。

谢谢。

以下是我的项目文件:

插件库.pro:

代码语言:javascript
复制
QT          += widgets designer

QMAKE_LFLAGS += /INCREMENTAL:NO

TARGET      = $$qtLibraryTarget($$TARGET)
TEMPLATE    = lib

CONFIG     += plugin
CONFIG     += debug_and_release

target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target

HEADERS     = qdragabletoolbox.h \
              qdragabletoolboxplugin.h \
              qdragabletoolboxextensionfactory.h \
              qdragabletoolboxcontainerextension.h
SOURCES     = qdragabletoolbox.cpp \
              qdragabletoolboxplugin.cpp \
              qdragabletoolboxextensionfactory.cpp \
              qdragabletoolboxcontainerextension.cpp

RESOURCES += qdragabletoolbox.qrc

OTHER_FILES += qdragabletoolbox.json

测试可执行文件.pro:

代码语言:javascript
复制
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

QMAKE_LFLAGS += /INCREMENTAL:NO

TARGET = QDesignerPluginTester
TEMPLATE = app

CONFIG += debug_and_release

LIBS += -LF:/Custom_Plugins/QDragableToolBox/output -lQDragableToolBox
LIBS += -LF:/Custom_Plugins/QMultiPageWidget/output -lQMultiPageWidget
LIBS += -LF:/Custom_Plugins/QLED/output -lQLED

SOURCES += main.cpp\
        testwidget.cpp

HEADERS  += testwidget.h

FORMS    += \
    testwidget.ui
EN

回答 1

Stack Overflow用户

发布于 2014-06-11 20:53:10

文档明确指出,必须使用与应用程序相同的设置来构建插件:http://qt-project.org/doc/qt-5/deployment-plugins.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23554655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档