Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: boruh от Февраль 08, 2010, 02:23



Название: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: boruh от Февраль 08, 2010, 02:23
Всем доброго времени суток.
Пишу на Win на Qt 4.5.3 + MSVS2008
Столкнулся с такой проблемой: сделал dll-плагин для Designer. В проекте есть так же еще одна библиотека, которая раньше собиралась как static lib. Все было замечательно. Но вот как только я переделал эту самую библиотеку на dll - плагин перестал загружаться. Я полагаю что проблема в том, что Qt Designer не может разрулить зависимость плагина от какой-то внешней dll. Пробовал переписать ее в папку плагинов - не помогло. Смотрю About - вижу свой плагин в Failed и вот что пишет:
1. Cannot load library C:/Qt/4.5.2-msvc2008/plugins/designer/CSIOControls.dll: The specified module could not be found.
2. The plugin 'C:/Qt/4.5.2-msvc2008/plugins/designer/CSIOControlsd.dll' uses incompatible Qt library. Expected build key "Windows msvc release full-config", got "Windows msvc debug full-config"
3. The file 'C:/Qt/4.5.2-msvc2008/plugins/designer/CSIODatabase.dll' is not a valid Qt plugin. (это та самая библиотека, которая была static lib а стала dll)

Касаемо второго сообщения - тоже странно, не могу понять - все собираю в конфигурации Release и релизныне выходные файлы копирую в папку plugins/designer. Почему такое сообщение вдруг взялось - не понимаю.

Кто-нибудь сталкивался с подобной задачей - сделать Qt plugin, который зависит от внешней dll-библиотеки? Помогите плиз!


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: boruh от Февраль 08, 2010, 02:55
Вот, пересобрал библиотеку как static lib - плагин сразу загрузился нормально. Причем сообщение про uses incompatible Qt library... осталось, но тем не менее это не мешает плагину успешно загружаться в дизайнер и работать.


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: b-s-a от Февраль 08, 2010, 16:11
Попробуй CSIODatabase.dll положить в C:\windows\system32 для начала.


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: crossly от Февраль 08, 2010, 16:12
Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: boruh от Февраль 08, 2010, 17:59
Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??

К сожалению не говорит. Проект собираю в MSVS2008, в конфигурации Release, в настройках проекта все выставлено как для релизной конфигурации.

Но самое главное - данное сообщение никак не сказывается на загружаемости плагина. Если у него появляется зависимость от внешней dll - он не грузится, если эта зависимость устраняется - то грузится, и в обоих случаях показывает это самое сообщение про release/debug


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: boruh от Февраль 08, 2010, 18:01
Попробуй CSIODatabase.dll положить в C:\windows\system32 для начала.

Да, попробую вечером (сейчас пока нет возможности), но я пробовал класть этот файл в папку прямо с самим плагином, а dll вроде должны искаться и в своей папке тоже. Но проверю, в любом случае.


Название: Re: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll
Отправлено: crossly от Февраль 09, 2010, 12:52
Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??

К сожалению не говорит. Проект собираю в MSVS2008, в конфигурации Release, в настройках проекта все выставлено как для релизной конфигурации.

Но самое главное - данное сообщение никак не сказывается на загружаемости плагина. Если у него появляется зависимость от внешней dll - он не грузится, если эта зависимость устраняется - то грузится, и в обоих случаях показывает это самое сообщение про release/debug
это говорит о том что собрано в debug.... а он хочет release....