Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Добавить драйвер QPSQL
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
pwp2008
Получили системный блок с предустановленными МСВС и Qt-4.6, но в Qt нет
драйвера QPSQL, есть только QSQLITE. Можно ли его (QPSQL)туда добавить
без переустановки Qt-4.6 и, если можно, то как это сделать.
Частичная проблема еще в том, что нет дистрибутива Qt-4.6, а есть Qt-4.5.0,
но из него нужен только драйвер QPQSL.
2. Или нужно ставить Qt-4.5.0 полностью и на ней работать?
rich
Цитата(pwp2008 @ 19.5.2015, 18:46) *
Получили системный блок с предустановленными МСВС и Qt-4.6, но в Qt нет
драйвера QPSQL, есть только QSQLITE. Можно ли его (QPSQL)туда добавить
без переустановки Qt-4.6 и, если можно, то как это сделать.
Частичная проблема еще в том, что нет дистрибутива Qt-4.6, а есть Qt-4.5.0,
но из него нужен только драйвер QPQSL.
2. Или нужно ставить Qt-4.5.0 полностью и на ней работать?

<<< Можно ли его (QPSQL)туда добавить
Можно.
<<< если можно, то как это сделать
Собрать libqsqlpsql.so и положить рядом с libqsqlite.so.
<<< Частичная проблема еще в том, что нет дистрибутива Qt-4.6, а есть Qt-4.5.0
Как нет? Вот 4.6.*
<<< Или нужно ставить Qt-4.5.0 полностью и на ней работать?
Это спросите у тех от кого получаете задание на разработку.
pwp2008
Цитата
<<< Можно ли его (QPSQL)туда добавить
Можно.
<<< если можно, то как это сделать
Собрать libqsqlpsql.so и положить рядом с libqsqlite.so.

2rich: Видите ли, я так и сделал практически сразу, поскольку на другой ПЭВМ уже стоял Qt_4.5
и драйвер QPSQL там был и определялся. Взял оттуда libqsqlpsql.so и положил в plugin/sqldrivers
вместе с libqsqlite.so. К сожалению, среди доступных драйверов он не появляется....
Почти неделю пробовал в разных вариантах - не видит QPSQL. Может и сборку нужно делать
непосредственно в том Qt, в который я и хочу его добавить, но по причине отсутствия sql.pro
Qt-4.6 так пока не делал.

<<< Частичная проблема еще в том, что нет дистрибутива Qt-4.6, а есть Qt-4.5.0
Как нет? Вот 4.6.*

За ссылку спасибо, видимо пригодится.
wiz29
возможно проблема в rpath той so которую вы взяли с другой машины.
rich
Цитата(pwp2008 @ 21.5.2015, 18:58) *
Может и сборку нужно делать
непосредственно в том Qt, в который я и хочу его добавить

Так и надо. libqsqlpsql.so из Qt_4.5 в Qt_4.6 не будет виден.
Ещё нужно что бы драйвер (или QT полностью) сибирались в режиме релиза либо всё в режиме отладки и программа которая будет использовать драйвер тоже собиралась в том же режиме.
pwp2008
Цитата(wiz29 @ 21.5.2015, 19:54) *
возможно проблема в rpath той so которую вы взяли с другой машины.

Пока не понял, а что разве путь может быть зашит внутри этой библиотеки с драйвером?

Цитата(rich @ 21.5.2015, 20:02) *
>>Может и сборку нужно делать
>>непосредственно в том Qt, в который я и хочу его добавить
Так и надо. libqsqlpsql.so из Qt_4.5 в Qt_4.6 не будет виден.
Ещё нужно что бы драйвер (или QT полностью) собирались в режиме релиза либо всё в режиме отладки и программа которая будет использовать драйвер тоже собиралась в том же режиме.

Про режимы - понятно. Не совсем пока въезжаю, как мне эту доустановку только драйвера сделать...
Ранее пытался сделать такой файл из полного Makefile для всего Qt, но редактирование Makefile не для простых людей..Может как то использовать Makefile из директории установки ....src/sql. Ведь там и sql.pro файл имеется.
В общем, если есть что подсказать на эту тему - уж пожалуйста.
rich
Цитата(pwp2008 @ 22.5.2015, 17:51) *
Не совсем пока въезжаю, как мне эту доустановку только драйвера сделать...

Выше же определились.

1. Качаете qt 4.6.
2. Собираете Qt 4.6 с драйвером qsqlpsql или отдельно проект qt-everywhere-opensource-src-4.6.0/src/plugins/sqldrivers/psql
3. Переносите libqsqlpsql.so на целевую ПЭВМ
pwp2008
Цитата(rich @ 22.5.2015, 22:52) *
Цитата(pwp2008 @ 22.5.2015, 17:51)
Не совсем пока въезжаю, как мне эту доустановку только драйвера сделать...
Выше же определились.

1. Качаете qt 4.6.
2. Собираете Qt 4.6 с драйвером qsqlpsql или отдельно проект qt-everywhere-opensource-src-4.6.0/src/plugins/sqldrivers/psql
3. Переносите libqsqlpsql.so на целевую ПЭВМ

Ну да, я так и делаю, только собираю Qt-4.5.0 и пытаюсь добавить к /plugins/sqldriver libqsqlpsql.so
правда для других версий : то 4, то 4.6 . Этот драйвер те системы не видят.
В понедельник попробую тоже самое с Qt 4.6
Дома собрал Qt-4.5 с драйвером psql, но добавил в ./configure опцию -no-rpath(для эксперимента).
Так библиотека драйвера в plugin появилась, а пересобранная моя программа его не видит.
В проектах, открытых в Qt начал появляться файл (или корень дерева) qtconfig.
Однако исполняемые файлы, собранные в предыдущей Qt-4.5 находят этот драйвер. Функцию -no-rpath , конечно, я еще для себя не уяснил.
И еще, можно чуть подробнее про второй вариант сборки : "или отдельно проект qt-everywhere-opensource-src-4.6.0/src/plugins/sqldrivers/psql" . Т. е. мне вытащить из полного Qt source директорию
src-4.6.0/src/plugins/sqldrivers/psql и выполнить qmake или make ?
Или таким же образом выполнить вышестоящий проект sql.pro - ведь там еще все собирается вместе с /kernel и /models.
rich
Цитата(wiz29 @ 21.5.2015, 19:54) *
возможно проблема в rpath той so которую вы взяли с другой машины.

pwp2008, в терминале наберите:
ldd libqsqlite.so > ldd-libqsqlite.so

Сделать это нужно в каталоге где находится libqsqlite.so.
Появится файл ldd-libqsqlite.so. Покажите его содержимое.

Цитата(pwp2008 @ 23.5.2015, 9:51) *
Qt-4.5.0 и пытаюсь добавить к /plugins/sqldriver libqsqlpsql.so
правда для других версий : то 4, то 4.6

Поправьте меня кто нидудь, если это не так. Вроде версия должна полностью совпадать.
Цитата(pwp2008 @ 23.5.2015, 9:51) *
И еще, можно чуть подробнее про второй вариант сборки

Не надо ничего вытаскивать пусть там и находится, переходите в src-4.6.0/src/plugins/sqldrivers/psql и выполняете qmake и make.
Цитата(pwp2008 @ 23.5.2015, 9:51) *
Функцию -no-rpath , конечно, я еще для себя не уяснил.

Цитата
# ./configure --help | grep rpath
-no-rpath .......... Do not use the library install path as a runtime
+ -rpath ............. Link Qt libraries and executables using the library
pwp2008
Цитата(rich @ 23.5.2015, 11:01) *
pwp2008, в терминале наберите:
ldd libqsqlite.so > ldd-libqsqlite.so
Сделать это нужно в каталоге где находится libqsqlite.so.
Появится файл ldd-libqsqlite.so. Покажите его содержимое.

Это после сборки всего Qt c параметром -no-rpath, архив sql_drv.rar инфо по ldd.

>>>Цитата
>>># ./configure --help | grep rpath
>>>-no-rpath .......... Do not use the library install path as a runtime
>>>+ -rpath ............. Link Qt libraries and executables using the library
Да это я читал....

rich
Цитата(pwp2008 @ 23.5.2015, 11:52) *
архив sql_drv.rar

Какой архив?
Сделайте ldd и на ПЭВМ куда переносите libqsqlite.so.
pwp2008
>>>Цитата(pwp2008 @ 23.5.2015, 11:52)
>>>архив sql_drv.rar
>>>Какой архив?
1. Это я пытался перенести эти файлы в архиве, а форум не позволил. Переименовал файлы в *.txt и приложил к ответу,а текст про архив не убрал.

>>Сделайте ldd и на ПЭВМ куда переносите libqsqlite.so.
2. Драйвер libqsqlite.so. там имеется, он идет по умолчанию, речь идет о Qpsql.
2.1 Той машины под руками сейчас нет, но есть на флэшке те драйвера. Прилагаю ldd к ним, сделанные сейчас.
Qsqlite - родной, QPSQL - добавленный из 4.5.0
В понедельник к вечеру положу ldd с машины с Qt-4.6
-------------------------
3. Пересобрал Qt-4.5.0 без параметра -no-rpath -> драйвера QPSQL и QPSQL7 появились.
Машина дома так себе, пересборка идет 6 часов.
rich
Цитата(pwp2008 @ 23.5.2015, 15:47) *
>>Сделайте ldd и на ПЭВМ куда переносите libqsqlite.so.
2. Драйвер libqsqlite.so. там имеется, он идет по умолчанию, речь идет о Qpsql.

Изините, libqsqlpsql.so везде имел ввиду.
pwp2008
Цитата(rich @ 22.5.2015, 22:52) *
Цитата(pwp2008 @ 22.5.2015, 17:51)
Не совсем пока въезжаю, как мне эту доустановку только драйвера сделать...
Выше же определились.

1. Качаете qt 4.6.
2. Собираете Qt 4.6 с драйвером qsqlpsql или отдельно проект qt-everywhere-opensource-src-4.6.0/src/plugins/sqldrivers/psql
3. Переносите libqsqlpsql.so на целевую ПЭВМ


Похоже это должно пройти. Сконфигурировал Qt_4.5 без драйвера QPSQL, проверил - драйвера нет.
Добавил libqsqlpsql.so к драйверу QSQLITe - видны все драйверы.
pwp2008
Цитата(rich @ 22.5.2015, 22:52) *
Выше же определились.
1. Качаете qt 4.6.
2. Собираете Qt 4.6 с драйвером qsqlpsql или отдельно проект qt-everywhere-opensource-src-4.6.0/src/plugins/sqldrivers/psql
3. Переносите libqsqlpsql.so на целевую ПЭВМ


Поскольку Вы один мне отвечаете, может перейдем на эл.почту, чтобы не напрягать понапрасну форум.
Есть результаты по установке Qt-4.6. Адрес pwp2008@obninsk.ru
pwp2008
Цитата(rich @ 22.5.2015, 22:52) *
1. Качаете qt 4.6.
2. Собираете Qt 4.6 с драйвером qsqlpsql
3. Переносите libqsqlpsql.so на целевую ПЭВМ


Итоги : По информации от <rich>:
"Для этого нужно что бы совпали битность, версия QT, версия компилятора и
в целевой системе были необходимые библиотеки, если для драйвера они нужны."

Когда это все совпадает, то драйвер QPSQL переносится просто копированием полученного объекта
libqsqlpsql.so в .../plugins/sqldrivers той Qt, в которую он должен быть добавлен.

Думаю, вопрос закрыт.


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.