Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: Гурман от Июль 16, 2019, 16:59



Название: [РЕШЕНО] Снова глюк с плагинами
Отправлено: Гурман от Июль 16, 2019, 16:59
Все плагины QtCreator для разных приложений приходится сваливать в один каталог в дереве Qt - оттуда их берёт QtDesigner. Причём берёт их при старте, загружать и выгружать на ходу он не умеет, поэтому подстроить под разные проекты его невозможно. У меня 15 своих плагинов дизанера для разных приложений, и это ещё не много. Причём есть такие плагины, которые внутри себя используют другие плагины. Например, есть мой плагин декорированного окна с использованием моего плагина декорированных кнопок. Такое окно используется в одном приложении, а кнопки сами по себе и в других.

И вот я возился с этим окном, не доделал его немного, отложил. Надо поработать с приложениями, которые используют только кнопки. Открываю одно, и опа... в дизайнере не загружен плагин кнопок. Хотя раньше был загружен - приложение старое, работающее, распространяемое. Что опять за? Похоже на другой глюк с плагинами (http://www.prog.org.ru/topic_32381_0.html). Но сообщение об ошибке при загрузке плагина совсем другое:

undefined symbol: _ZN10<имя_плагина>16staticMetaObjectE

Поиск в Интернете намёков не дал, точнее нашёл пару похожих сообщений, но то что там приводилось у меня отсутствует. Более того - рядом лежит плагин, построенный по точно такой же схеме, его проект и исходники отличаются только именами файлов, глобальными именами и содержимым классов виджетов, и он нормально загрузился. Ну то есть, если бы ошибка была в плагине, она была бы в обоих.

Тут я вижу, что не загрузился также плагин окна, который я не доделал. Хотя файл плагина собрал, и он лежит в каталоге плагинов дизайнера. Но в сообщении о нём... присутствует почему-то и плагин кнопки. Удаляю недоделанный плагин, перезапускаю QtCreator.

Плагин кнопки загрузился, работает. Вот же блин горелый!!! Если не грузится какой-то плагин в дизайнер - то не грузятся и плагины которые он использует. Даже отдельно не грузит. Не, я конечно понимаю что при загрузке ведущего плагина, если он не грузится, то не загрузятся его ведомые. Но ведь QtCreator должен грузить все плагины из своего каталога по-отдельности. То есть потом или перед этим он должен был бы загрузить плагин кнопки отдельно. Дуля с маком.

Помечаю сразу [РЕШЕНО] и оставляю на случай если кто-то с подобным столкнётся.