Russian Qt Forum
Ноябрь 23, 2024, 12:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Подключение плагинов при переносе на машину без установленной Qt.
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Подключение плагинов при переносе на машину без установленной Qt. (Прочитано 29596 раз)
ilot
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #15 :
Январь 15, 2010, 16:00 »
Цитата: SASA от Январь 15, 2010, 15:50
А файлика qt.conf рядом не валяется?
нет. попробовал один раз (описал в первом посте). Поскольку не получилось - убрал. Больше не использовал.
Записан
crackedmind
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #16 :
Январь 15, 2010, 18:21 »
На чистую машину надо еще рантайм от студии поставить нормально, а то плагины его не находят и поэтому не грузятся.
Записан
ilot
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #17 :
Январь 15, 2010, 18:53 »
Цитата: crackedmind от Январь 15, 2010, 18:21
На чистую машину надо еще рантайм от студии поставить нормально, а то плагины его не находят и поэтому не грузятся.
Что значит "поставить нормально"?
Я таскаю в папке с экзешником манифест и библиотеки рантайма (VS2008):
Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll
Может еще что-то нужно?
Да и не понятно почему часть плагинов грузится, а часть - нет. Выходит у них необходимые условия запуска отличаются?
Записан
SASA
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #18 :
Январь 15, 2010, 19:35 »
Пять минут назад не смог на чистой машине запустить mysql плагин.
Это заговр
Кто понимает, о чём говорят записи в реестре о плагинах?
Записан
crackedmind
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #19 :
Январь 15, 2010, 20:25 »
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Вот это я обозвал "нормальной установкой". Либо поизвращайтесь с манифестами.
Записан
SASA
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #20 :
Январь 16, 2010, 10:56 »
Цитата: crackedmind от Январь 15, 2010, 20:25
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Вот это я обозвал "нормальной установкой". Либо поизвращайтесь с манифестами.
Я так и ставил.
Записан
SASA
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #21 :
Январь 19, 2010, 12:23 »
Если кому ещё интересно.
Оказывается для работы mysql плагин нужна libmysql.dll.
Записан
Akaiten
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #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
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #23 :
Январь 19, 2010, 14:05 »
Можно не делать addLibrarypath и imageformats положить в каталог с exe.
Записан
Sahab
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #24 :
Январь 19, 2010, 16:21 »
не находит qsqlite.dll
Добавил addLibrarypath - не помогает
в одну папку с exe - не промогает
Обязательно компилить с с параметром -no-plugin-manifests?
Записан
BRE
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #25 :
Январь 19, 2010, 16:48 »
Цитата: Sahab от Январь 19, 2010, 16:21
не находит qsqlite.dll
Куда кладешь qsqlite.dll?
Как его собирал?
Записан
Sahab
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #26 :
Январь 19, 2010, 16:59 »
applicationDirPath()
applicationDirPath() + /sqldrivers
applicationDirPath() + /plugins
applicationDirPath() + /plugins/sqldrivers
короче везде
qsqlite.dll не собирал т.к. юзаю precompiled для MSVC 2008
Записан
Akaiten
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #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
Гость
Re: Подключение плагинов при переносе на машину без установленной Qt.
«
Ответ #28 :
Январь 19, 2010, 17:26 »
У меня работает вариант applicationDirPath() + /sqldrivers.
Правда плагин называется qsqlite4.dll.
И не забывем про
Цитата: crackedmind от Январь 15, 2010, 20:25
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
А так, посмотри депендес вьюером. Мож чего не хватает.
Записан
Sahab
Гость
Re: Подключение плагинов при переносе на маш&
«
Ответ #29 :
Январь 19, 2010, 17:38 »
dv - ничего не покажет (и не показал) т.к. sqlite подгружается как плагин динамически
плагин конечно же qsqlite4.dll
манифест + с/с++ рантайм лежит рядом с exe
не помогает
нужно пересобирать Qt?
Записан
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...