Russian Qt Forum
Ноябрь 27, 2024, 04:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отладка плагина  (Прочитано 2281 раз)
boruh
Гость
« : Ноябрь 30, 2010, 18:48 »

Здравствуйте.
Столкнулся с такой ситуацией: есть приложение, для него пишутся плагины (на базе QtPlugin конечно же). При разработке плагинов в руках разработчика есть лишь release версия основного приложения, при этом хотелось бы отлаживать свой плагин (через attach to process, например). При этом debug-сборка плагина основным приложением не загружается.
Причины вроде бы понятны: в документации четко сказано, что валидация плагинов идет по Build Key и что конфигурация плагина и основного приложения должны совпадать:
Цитировать
When building plugins to extend an application, it is important to ensure that the plugin is configured in the same way as the application. This means that if the application was built in release mode, plugins should be built in release mode, too.
Далее сказано, что в отладочных целях эту валидацию можно перегрузить, открыв тем самым возможность приложению загружать дебажные плагины и затем отлаживать их:
Цитировать
For debugging purposes, it is possible to override the run-time build key checks by configuring Qt with the QT_NO_PLUGIN_CHECK preprocessor macro defined.
Но к сожалению больше ничего про макрос QT_NO_PLUGIN_CHECK не сказано, и для меня осталось совершенно неясно: что же нужно сделать? Нужно пересобрать весь QT, предварительно включив этот макрос, или же достаточно определить макрос внутри своего приложения и пересобрать его?
После поиска в интернете и копания в исходниках Qt прихожу все же к выводу, что видимо этот макрос нужно использовать при сборке QT, тогда в методе QPluginLoader::load() проверка debug/release будет отключена. Однако хотелось бы быть более уверенным в этом, прежде чем браться за пересбор библиотеки.

Резюмирую мой вопрос: как использовать макрос QT_NO_PLUGIN_CHECK чтобы отключить строгую валидацию плагинов при загрузке в run-time и открыть возможность отладки плагинов, при наличии лишь release-версии основного приложения?

P.S. Буквально месяц назад на форуме разместили такой же вопрос, но ответа, увы, не последовало. Надеюсь на мой вопрос кто-нибудь все же сможет ответить  Улыбающийся
Записан
boruh
Гость
« Ответ #1 : Декабрь 01, 2010, 16:40 »

нет, похоже и мой вопрос останется подвисшим. Чтож, придется выяснять экперементальным путем и пересобирать QT!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 21.