закрытым исходным кодом и интерфейсными хедерами, включающими в себя Q_OBJECT, Q_PLUGIN_METADATA макросы?
Суть вопроса сводится к тому, располагать ли реализации всего, что генерит moc на интерфейсные хедеры в самом плагине, или давать пользователю плагина самому их генерить с помощью уже его moc, чья версия Qt может отличаться от версии Qt, что использовалась в плагине? Понятное дело, что имея такую проверку метадаты в QLibrary на стороне клиента плагина https://github.com/qt/qtbase/blob/d07742f333df89dc399fc5d9cabf2bdef0b346c5/src/corelib/plugin/qlibrary.cpp#L799-L812 уже строго определено, что Minor-версия Qt клиента должна совпадать или быть выше.
Кто-нибудь сталкивался с этим вопросом на практике? Какие подводные камни могут быть?
плагин с интерфейсом наружу и сгенеренной зашитой метадатой, всё остальное не нужно
То есть, пусть пользователь сам генерит для типов из плагина реализации сигналов через его собственный moc? Где можно было бы почитать о плюсах и минусах подобного подхода, или стоило бы вообще отказаться от Qt-шных интерфейсов в пользу старых добрых коллбэков?
Первый вариант мне нравится больше) старые добрые это всё-таки старые добрые, если использовать Qt, то тогда уж по полной
Обсуждают сегодня