Russian Qt Forum
Ноябрь 24, 2024, 03:21
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
[РЕШЕНО] Непонятная проблема с плагином для QtDesigner
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] Непонятная проблема с плагином для QtDesigner (Прочитано 11285 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #15 :
Апрель 24, 2019, 19:45 »
Цитата: Old от Апрель 24, 2019, 19:36
Плагины это обычные динамические библиотеки и загружаются они системным загрузчиком ld, это его ошибка о неизвестном символе.
Не знаю как в Qt5, но в Qt4 к символам внутри библиотеки-плагина я обращался вручную, то есть явно вызывал загрузку библиотеки из своего каталога, и вызывал для их инициализации экспортированные из них методы. У меня приложение состояло из небольшого загрузчика, который больше ничего не умел, а всё остальное - плагины. При этом всё это одинаково работало в Windows и Linux.
Цитата: Old от Апрель 24, 2019, 19:36
А не может быть дублирования символов? Не может такого быть, что в плагинах загруженных ранее есть класс с таким же именем?
Вроде нет. Не должно. Тогда ошибка должна быть другой - дублирование.
ЗЫ: Проследил - нет, в других плагинах это имя не используется. Вообще - почему именно когда появляется конструктор, то всё ломается? И какое отношение конструктор может иметь к таблице виртуальных методов?
«
Последнее редактирование: Апрель 24, 2019, 20:21 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #16 :
Апрель 24, 2019, 20:32 »
Цитата: Гурман от Апрель 24, 2019, 19:45
Тогда ошибка должна быть другой - дублирование.
Нет. Будет использоваться первый известный загрузчику символ. На этом принципе работают всякие инжекторы, которые заменяют нужные функции своими, загружая свою разделяемую библиотеку первой.
Цитата: Гурман от Апрель 24, 2019, 19:45
ЗЫ: Проследил - нет, в других плагинах это имя не используется. Вообще - почему именно когда появляется конструктор, то всё ломается? И какое отношение конструктор может иметь к таблице виртуальных методов?
Я так понимаю, что вы загружаете сразу несколько своих плагинов. А попробуйте оставить для загрузки только один этот.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #17 :
Апрель 24, 2019, 20:33 »
Цитата: Old от Апрель 24, 2019, 20:32
Я так понимаю, что вы загружаете сразу несколько своих плагинов. А попробуйте оставить для загрузки только один этот.
Не имеет значения. Вообще дублирование имён в плагинах никак не влияет - у меня их куча, и в них навалом дублирующихся имён. Всё прекрасно работает. Загрузчик их грузит последовательно, резолвит ссылки, и когда грузит следующий, загруженные уже не мешают. Это же плагины виджетов дизайнера, там невозможно без дублирования имён обойтись.
Оппа... Убираю макрос Q_OBJECT в начале класса - плагин грузится, со всеми конструкторами, сигналами, слотами и прочим. То есть, целиком, без каких-то других сокращений. Возвращаю - не грузится.
Сейчас собрал ещё один аналогичный плагин с другим функционалом, но он тоже инклюдит этот класс. Тоже без Q_OBJECT в этом классе. И дизайнер загрузил оба эти плагина. Но мне
необходим
Q_OBJECT - сигналы и слоты нужны.
«
Последнее редактирование: Апрель 24, 2019, 23:10 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #18 :
Апрель 24, 2019, 22:46 »
Цитата: Гурман от Апрель 24, 2019, 20:33
Оппа... Убираю макрос Q_OBJECT в начале класса - плагин грузится, со всеми конструкторами, сигналами, слотами и прочим. То есть, целиком, без каких-то других сокращений. Возвращаю - не грузится.
moc-то отработал? файл подцепился? что будет, если заинклюдить мок в цпп?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #19 :
Апрель 24, 2019, 23:10 »
Цитата: Авварон от Апрель 24, 2019, 22:46
moc-то отработал? файл подцепился? что будет, если заинклюдить мок в цпп?
Что это за странные вопросы? Класс с Q_OBJECT, signals:, public slots:, emit... компилируется и создаётся объектный модуль.
Записан
2^7-1 == 127, задумайтесь...
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #20 :
Апрель 24, 2019, 23:15 »
но-но, мок делает отдельный цпп с отдельным .о файлом. Он есть?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #21 :
Апрель 24, 2019, 23:19 »
Цитата: Авварон от Апрель 24, 2019, 23:15
но-но, мок делает отдельный цпп с отдельным .о файлом. Он есть?
Стоп, а как moc может не отработать? Исходник указан в проекте сразу следом за исходниками самого плагина.
И как этот класс может компилироваться, если в нём есть ключевые слова moc, не известные GCC?
Вообще-то объектника с именем, начинающемся с moc_ для исходника с этим классом нет.
«
Последнее редактирование: Апрель 24, 2019, 23:25 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #22 :
Апрель 24, 2019, 23:38 »
БЛИИИНННН.... Слов нет, одни буквы... В проекте в секции
HEADERS =
отсутствовал заголовочный файл в котором описан этот класс.
Когда структуру на класс поменял, не добавил его. Структуре оно как бы пофик было, она не изменялась давно, без этого всё работало - файл инклюдился по маршруту в INCLUDEPATH =.
И, блин вся эта двоичная троллевская мутота, скотина
МОЛЧА
всё жуёт, никаких сообщений, даже варнингов, делает плагин на выходе - и .....
Тфу. Заработало.
Записан
2^7-1 == 127, задумайтесь...
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Непонятная проблема с плагином для QtDesigner
«
Ответ #23 :
Апрель 24, 2019, 23:39 »
кумейкопроблемы
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...