我已经创建了一个自定义的部件。插件集的现有夸脱的创造者,但是当我编译程序,我得到这个错误:

"测试。h:没有这样的文件或目录"

在哪测试。h是名称的定义的部件。我做错了什么?这是本*.亲文件中的应用程序:

TEMPLATE = app
SOURCES += main.cpp \
    mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui

这是本*.亲文件中的插件:

CONFIG      += designer plugin debug_and_release
TARGET      = $$qtLibraryTarget(testplugin)
TEMPLATE    = lib
HEADERS     = testplugin.h
SOURCES     = testplugin.cpp
RESOURCES   = icons.qrc
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS    += target
include(test.pri)
有帮助吗?

解决方案

经过广泛的研究,我偶然发现这个线程:

http://www.archivum.info/qt-interest@trolltech.com/2010-02/01398/Re-%28Qt-interest%29-Undefined-reference-to-%28any-custom-widget%29.html

事实证明,当编制一个插件,"dll",你只是夸脱的创造者/建设计师的一体化的目的。你不能链接,图书馆。你应该提供另外一种图书馆,其中包含的标题和源码或包括他们在你的项目。因此,总而言之,这里有适当步骤,以部署一个自定义的部件:

  1. 创建一个图书馆含有该定义的部件的源头。让我们叫这A.图书馆或者,增加的源头和你的项目。
  2. 创造的部件的插件对脱的创造者/设计师的一体化。再次,这个插件是不可用于任何其他夸脱的创造者/设计师的一体化。
  3. 在你的项目,就必须添加以下行为的*.pro文件:

    库+=C:\[路径图书馆的二进制]
    INCLUDEPATH+=C:\[路径图书馆的一个标题]

通告再次,你是连接到图书馆,未到图书馆,你当你编的部件。

其他提示

如果你可以看到你的小工具在设计师,你的插件是工作的方式,指定了它。你的问题基本上是程序你汇编可以找不到头文件的部件则是增加通过的插件。回答是有可能一两件事情:

  • 增加更多的路径头在你的插件,使方案使用的部件可以找到标题恰当。
  • 添加了路标题的文件作为包括路径的编译器,因此编译可以找到合适的标题,当程序的文件的参考。

我面临着同样的问题。然后我试图所有头文件和DLL插件的.cpp文件添加到explicitly.it解决了该问题的应用项目文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top