找不到QQmlExtensionPlugin

时间:2014-09-25 11:40:25

标签: c++ windows qt plugins qml

我正在尝试创建一个QML组件(QQuickItem),它将接收一个URL并在OpenCV上显示rtsp流的帧。

我一直在关注this tutorial创建插件并将其公开到我的QML视图。

当我尝试执行时出现问题,控制台说:" module" CVCamScreen"未安装"

也正在识别导入QML文件。它编译但不运行。

以下是cvcamscreen项目配置:

qmldir:

module CVCamScreen
plugin CVCamScreen

cvcamscreen.pro:

TEMPLATE = lib
TARGET = CVCamScreen
QT += qml quick
CONFIG += qt plugin

TARGET = $$qtLibraryTarget($$TARGET)
uri = CVCamScreen

# Input
SOURCES += \
    cvcamscreen_plugin.cpp \
    cvcamscreen.cpp

HEADERS += \
    cvcamscreen_plugin.h \
    cvcamscreen.h

OTHER_FILES = qmldir

!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
    copy_qmldir.target = $$OUT_PWD/qmldir
    copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
    copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
    QMAKE_EXTRA_TARGETS += copy_qmldir
    PRE_TARGETDEPS += $$copy_qmldir.target
}

qmldir.files = qmldir
unix {
    installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
    qmldir.path = $$installPath
    target.path = $$installPath
    INSTALLS += target qmldir
}

unix:!macx|win32: LIBS += -L$$PWD/../../../../../../opencv/build/x86/mingw/lib/ -llibopencv_core249

INCLUDEPATH += $$PWD/../../../../../../opencv/build/include
DEPENDPATH += $$PWD/../../../../../../opencv/build/include

cvcamscreen项目是在 MyProject \ CVCamScreen 下创建的,这意味着它是在主项目文件夹下创建的。

我在 Windows 8.1

上使用 QT 5.3 Qt Creator 3.1.2(开源)

其他信息

我注意到Qt Creator在一个名为 build-BSSecurityClient-Desktop_Qt_5_3_MinGW_32bit-debug build-BSSecurityClient-Desktop_Qt_5_3_MinGW_32bit-release 的新目录下构建项目。

我不知道这是否是Qt Creator的正确行为,但这些目录中还有另外两个名为 debug release 的目录。这给我留下了以下结构:

- build-BSSecurityClient-Desktop_Qt_5_3_MinGW_32bit-debug
    - debug
    - release

- build-BSSecurityClient-Desktop_Qt_5_3_MinGW_32bit-release
    - debug
    - release

我可能错了,但是这个层次结构对我来说没有任何意义,只要它指定了一个调试和一个relase文件夹,所以我认为没有理由再次将它分开。

问题:如何配置此项目以协同工作?

编辑------------------

所以我尝试通过执行以下操作将其导入qml文件:

import CVCamScreen 1.0

0 个答案:

没有答案