C++ QQmlExtensionPlugin可以';找不到
我正在尝试创建一个QML组件(QQuickItem),它将接收URL并通过OpenCV显示rtsp流的帧 我一直在跟踪创建插件并将其公开到我的QML视图中 问题当我尝试执行时,控制台显示:“模块”CVCamScreen“未安装” 导入到QML文件的操作也被识别。它可以编译,但不运行 以下是cvcamscreen项目配置: qmldir:C++ QQmlExtensionPlugin可以';找不到,c++,windows,qt,plugins,qml,C++,Windows,Qt,Plugins,Qml,我正在尝试创建一个QML组件(QQuickItem),它将接收URL并通过OpenCV显示rtsp流的帧 我一直在跟踪创建插件并将其公开到我的QML视图中 问题当我尝试执行时,控制台显示:“模块”CVCamScreen“未安装” 导入到QML文件的操作也被识别。它可以编译,但不运行 以下是cvcamscreen项目配置: qmldir: module CVCamScreen plugin CVCamScreen TEMPLATE = lib TARGET = CVCamScreen QT +=
module CVCamScreen
plugin CVCamScreen
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.pro:
module CVCamScreen
plugin CVCamScreen
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下创建的,这意味着它是在主项目文件夹下创建的
我使用的是Qt5.3和QtCreator3.1.2(开源)而不是Windows8.1
传统信息
我注意到Qt创建者在一个名为build-BSSecurityClient-Desktop\u Qt\u 5\u 3\u MinGW\u 32bit-debug和build-BSSecurityClient-Desktop\u Qt\u 5\u 3\u MinGW\u 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
在导入插件时,向您展示C++代码,只需导入QML。通过在构建中添加包含LIBS和QMLDIR文件的文件夹来解决它。directory@RafaelTSCS你给文件夹起了什么名字?你是怎么得到这个名字的?对我来说似乎什么都不管用