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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Плагин не загружается в Qt Designer из-за зависимостей от внешних dll  (Прочитано 7464 раз)
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-библиотеки? Помогите плиз!
Записан
boruh
Гость
« Ответ #1 : Февраль 08, 2010, 02:55 »

Вот, пересобрал библиотеку как static lib - плагин сразу загрузился нормально. Причем сообщение про uses incompatible Qt library... осталось, но тем не менее это не мешает плагину успешно загружаться в дизайнер и работать.
Записан
b-s-a
Гость
« Ответ #2 : Февраль 08, 2010, 16:11 »

Попробуй CSIODatabase.dll положить в C:\windows\system32 для начала.
Записан
crossly
Гость
« Ответ #3 : Февраль 08, 2010, 16:12 »

Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??
Записан
boruh
Гость
« Ответ #4 : Февраль 08, 2010, 17:59 »

Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??

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

Но самое главное - данное сообщение никак не сказывается на загружаемости плагина. Если у него появляется зависимость от внешней dll - он не грузится, если эта зависимость устраняется - то грузится, и в обоих случаях показывает это самое сообщение про release/debug
Записан
boruh
Гость
« Ответ #5 : Февраль 08, 2010, 18:01 »

Попробуй CSIODatabase.dll положить в C:\windows\system32 для начала.

Да, попробую вечером (сейчас пока нет возможности), но я пробовал класть этот файл в папку прямо с самим плагином, а dll вроде должны искаться и в своей папке тоже. Но проверю, в любом случае.
Записан
crossly
Гость
« Ответ #6 : Февраль 09, 2010, 12:52 »

Цитировать
"Windows msvc release full-config", got "Windows msvc debug full-config"
ни о чем не говорит??

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

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


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