【发布时间】:2019-09-07 22:49:33
【问题描述】:
我为QCanBus 编写了一个自定义插件,它只是socketcan 插件的一个副本,但已被重命名,并且标识符已调整为新名称。
我进行复制是为了在更改插件之前首先让插件被识别。
我把 qmake 项目改成这样:
TEMPLATE = lib
TARGET = qtcopysocketcanbus
CONFIG += plugin
QT = core serialbus
HEADERS += \
copysocketcanbackend.h
SOURCES += \
main.cpp \
copysocketcanbackend.cpp
DISTFILES = plugin.json
并像这样添加plugin.json:
{
"Key": "copysocketcan"
}
然后我在main.cpp、copysocketcan.cpp 和copysocketcan.h 中将其他所有内容从socketcan 重命名为copysocketcan。
当我构建项目时,我得到了我的 *.so 文件,我将其放入目标上的$QT_PLUGIN_PATH/canbus/。
但是,快速入门显示,qt 只列出了安装附带的插件,而不是我添加的自定义插件。
我尝试将QLoggingCategory::setFilterRules(QStringLiteral("qt.canbus* = true")); 作为我代码的第一行并希望获得更多调试输出,但我只获得了我自己的应用程序正在生成的调试输出。实际QCanBus 没有输出。
所以我的问题是
- 如何启用
qt.canbus的调试输出?我是否必须为此使用调试配置构建 QT? - 我创建插件的方法合理吗?
- 任何想法,为什么没有列出自定义插件?
【问题讨论】:
-
启用
QT_DEBUG_PLUGINS并仔细检查加载其他插件的路径。见doc.qt.io/qt-5/deployment-plugins.html页尾 -
感谢您的帮助。
QT_DEBUG_PLUGINS的调试建议是关键。
标签: qt qt5 can-bus socketcan qtplugin