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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Подключение плагинов при переносе на машину без установленной Qt.  (Прочитано 29597 раз)
ilot
Гость
« Ответ #15 : Январь 15, 2010, 16:00 »

А файлика qt.conf рядом не валяется?
нет. попробовал один раз (описал в первом посте). Поскольку не получилось - убрал. Больше не использовал.
Записан
crackedmind
Гость
« Ответ #16 : Январь 15, 2010, 18:21 »

На чистую машину надо еще рантайм от студии поставить нормально, а то плагины его не находят и поэтому не грузятся.
Записан
ilot
Гость
« Ответ #17 : Январь 15, 2010, 18:53 »

На чистую машину надо еще рантайм от студии поставить нормально, а то плагины его не находят и поэтому не грузятся.
Что значит "поставить нормально"?
Я таскаю в папке с экзешником манифест и библиотеки рантайма (VS2008):

Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll

Может еще что-то нужно?
Да и не понятно почему часть плагинов грузится, а часть - нет. Выходит у них необходимые условия запуска отличаются?
Записан
SASA
Гость
« Ответ #18 : Январь 15, 2010, 19:35 »

Пять минут назад не смог на чистой машине запустить mysql плагин.
Это заговр Улыбающийся
Кто понимает, о чём говорят записи в реестре о плагинах?
Записан
crackedmind
Гость
« Ответ #19 : Январь 15, 2010, 20:25 »

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Вот это я обозвал "нормальной установкой". Либо поизвращайтесь с манифестами.
Записан
SASA
Гость
« Ответ #20 : Январь 16, 2010, 10:56 »

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Вот это я обозвал "нормальной установкой". Либо поизвращайтесь с манифестами.
Я так и ставил.
Записан
SASA
Гость
« Ответ #21 : Январь 19, 2010, 12:23 »

Если кому ещё интересно.
Оказывается для работы  mysql плагин нужна libmysql.dll. Веселый
Записан
Akaiten
Гость
« Ответ #22 : Январь 19, 2010, 13:49 »

Кароче, это всё из-за манифестов. Qt необходимо компилить с параметром -no-plugin-manifests.

В коде делаю так:
Код
C++ (Qt)
QApplication a(argc, argv);
...
a.addLibraryPath(a.applicationDirPath() + "/plugins");
 

При этом в каталоге с exe-шником должна находиться папка plugins\imageformats\, куда и помещаются библиотеки image-плагинов. И всё! Работает как часы.
« Последнее редактирование: Январь 19, 2010, 13:51 от Akaiten » Записан
BRE
Гость
« Ответ #23 : Январь 19, 2010, 14:05 »

Можно не делать addLibrarypath и imageformats положить в каталог с exe.
Записан
Sahab
Гость
« Ответ #24 : Январь 19, 2010, 16:21 »

не находит qsqlite.dll

Добавил addLibrarypath - не помогает
в одну папку с exe - не промогает
Обязательно компилить с с параметром -no-plugin-manifests?
Записан
BRE
Гость
« Ответ #25 : Январь 19, 2010, 16:48 »

не находит qsqlite.dll
Куда кладешь qsqlite.dll?
Как его собирал?
Записан
Sahab
Гость
« Ответ #26 : Январь 19, 2010, 16:59 »

applicationDirPath()
applicationDirPath() + /sqldrivers
applicationDirPath() + /plugins
applicationDirPath() + /plugins/sqldrivers
короче везде

qsqlite.dll не собирал т.к. юзаю precompiled для MSVC 2008
Записан
Akaiten
Гость
« Ответ #27 : Январь 19, 2010, 17:25 »

Всё идёт от VC runtime libraries. Варианты решения:
  • На конечной машине пользователя устанавливать VC redistributable package (рекомендовано Microsoft)
  • Кидать в папку в программой файлы Microsoft.VC90.CRT.manifest и msvcm90.dll, msvcp90.dll, msvcr90.dll (можно только те, которые используются) и использовать plugins без манифестов (QT надо собирать с опцией -no-plugin-manifests)
  • [не проверено] Кидать в папку в программой и во все папки с plugins файлы Microsoft.VC90.CRT.manifest и msvcm90.dll, msvcp90.dll, msvcr90.dll (можно только те, которые используются)
  • Другие варианты? Например, ссылка
« Последнее редактирование: Январь 19, 2010, 17:28 от Akaiten » Записан
SASA
Гость
« Ответ #28 : Январь 19, 2010, 17:26 »

У меня работает вариант applicationDirPath() + /sqldrivers.
Правда плагин называется qsqlite4.dll.
И не забывем про
А так, посмотри депендес вьюером. Мож чего не хватает.
Записан
Sahab
Гость
« Ответ #29 : Январь 19, 2010, 17:38 »

dv - ничего  не покажет (и не показал) т.к. sqlite подгружается как плагин динамически
плагин конечно же qsqlite4.dll
манифест + с/с++ рантайм лежит рядом с exe

 не помогает

нужно пересобирать Qt?
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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