Я написал собственный плагин для 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"
}
Затем я переименовал все остальное с socketcan
на copysocketcan
в main.cpp
, copysocketcan.cpp
и copysocketcan.h
.
Когда я создаю проект, я получаю свой файл *.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 а> конец страницы - person Th. Thielemann   schedule 20.04.2019QT_DEBUG_PLUGINS
был ключевым. - person darkmattercoder   schedule 23.04.2019