Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Добрый день, многоуважаемые! Я начал изучать Qt как платформу для создания кроссплатформенных GUI приложений. Для этих целей был скачен Qt SDK 2009.04. В качестве серверной части решил использовать локальный Postgresql 8.2. Все это работает под Windows XP Pro. И то и другое работает замечательно... Вопрос в том, как их вместе подружить? Следуя инструкциям описанным в мануале к Qt собрать плагин не удается. При сборке после реконфигурации с включением туда опций -plugin-sql-psql -I d:\psql\include -L d:\psql\lib , застревает на сборке WebKit. И еще, объясните мне пожалуйста четкую разницу между плагином и драйвером? А можно ли прикрутить уже собранные кем-то плагин или драйвер? Куда их прописывать, чтобы Qt увидела их? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2010, 13:59 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Фичко в том, что Qt собран с MinGW, А постгрес собран MS VS. Мне лично помАгло такое извращение: пересобрал слона под гигвином gcc-ом. Вроде пашет. ===================================================== Медицина относит алкоголь и табак к наркотическим веществам. Опьянение - это всего навсего нарушение работы головного мозга в следствие кислородного голодания. Хотите знать больше ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2010, 14:42 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Мне тож интересен данный вопрос. Вин ХР 32, сп3, енг. При попытке запустить приложение выскакивает: QSqlDatabase: QPSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC "Ne smogla ya otkrit bazu!1" "Driver not loaded Driver not loaded" Как правильно добавить PQSQL дрова? И потом, после сборки, на другом компьютере не будет проблем с запуском? Или там тоже нужно будет устанавливать Qt? И вообще, почему они их не включают автоматом в сборку? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 11:57 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Да, postgresql сервак стоит на другой машинке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 12:07 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
никаких проблем со сборкой драйвера postgres не возникает ни в винде, ни в линухе никакой разницы между driver и plugin нет. просто перейдите в папку с проектом драйвера выполните qmake c опциями "INCLUDEPATH+=path_to_postgres_headers" "LIBS+=path_to_libpq.dll -lpq" psql.pro, затем make насчет Driver not loaded, может быть несколько причин. 1. Просмотрите есть ли все используемые драйвером библиотеки (libpq.dll и все с ним связанные, а так же vc redistr из установщика PostgresSQL). Это легче делать какой нибудь утилитой просмотра зависимостей библиотек. 2. Просмотрите в каких папка ваша прога ищет драйвер QApplication.libraryPaths(), а вообще попробуйте в директории с программой создать папку sqldrivers (или plugins/sqldrivers) и поместить туда драйвер. не надо паниковать, как любая другая программа ваша программа на Qt будет требовать чтобы вы деплоили ее с нужными библиотеками, просто четко определите ее зависимости и включайте все библиотеки в инсталлятор программы (ну или носите их вместе с ней, если такого не имеется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 14:50 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
sherzod_никаких проблем со сборкой драйвера postgres не возникает ни в винде, ни в линухе никакой разницы между driver и plugin нет. просто перейдите в папку с проектом драйвера выполните qmake c опциями "INCLUDEPATH+=path_to_postgres_headers" "LIBS+=path_to_libpq.dll -lpq" psql.pro, затем make Ваш рецепт мне, к сожалению, не помог. У меня make - вообще отсутствует в системе. Есть только mingw32-make. Попытка запуска " mingw32-make -f Makefile.Debug all " привела к ошибке ".../mingw32/bin/ld.exe: cannot find -lpq " Подскажите, куда рыть ? sherzod_ 1. Просмотрите есть ли все используемые драйвером библиотеки (libpq.dll и все с ним связанные, а так же vc redistr из установщика PostgresSQL). Это легче делать какой нибудь утилитой просмотра зависимостей библиотек. Пару примеров таких утилит, если не трудно. sherzod_ 2. Просмотрите в каких папка ваша прога ищет драйвер QApplication.libraryPaths(), а вообще попробуйте в директории с программой создать папку sqldrivers (или plugins/sqldrivers) и поместить туда драйвер. Это рецепт тоже не работает. Выполнив: qmake "INCLUDEPATH+=C:\psql\include" "LIBS+=C:\psql\lib\libpq.lib" psql.pro mingw32-make -f Makefile.Debug all я таки скомпилировал драйверы для postgresql-ля. Но куда я их только не подсовывал - картинка одна и та же - Driver not loaded Driver not loaded Так всё же куда их засунуть :) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 00:03 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
sherzod_, а можно еще раз и поподробнее? Прям вместе с полным примером команд :). Потом поместим это в фак. У меня нет исходников постгреса. Он вообще стоит на линухе в другом месте. libpq.dll есть в установочной директории ODBC драйвера pgSQL. Платформа win xp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 09:11 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
после установки qt и mingw нужно добавить их директории bin в виндяшный path. вот вам простой make который использовался в более ранних версиях qt, поместите его в bin папке qt. make.bat @echo off mingw32-make %* __________________ How to Build the QPSQL Plugin on Windows Install the appropriate PostgreSQL developer libraries for your compiler. Assuming that PostgreSQL was installed in C:\psql, build the plugin as follows: cd %QTDIR%\src\plugins\sqldrivers\psql qmake "INCLUDEPATH+=C:\psql\include" "LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro nmake __________________ в ассистенте есть подробная информация о том как собрать драйвер на различных системых. без заголовочных файлов драйвер собрать не получится. насчет примеров утилит под винду не помню (но точно помню что в нете есть что-то бесплатное, когда-то пользовался, погуглите) , под линуху стандартный ldd. драйвер правильно загрузится лишь когда все используемые им библиотеки будут или в system32 или в папке программы. проверьте зависимости. когда все зависимости будут решены, можно будет решать куда его совать, это вам подскажет QApplication::libraryPaths(); люди читайте assistent) лучшей документации не найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 16:46 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
sherzod_после установки qt и mingw нужно добавить их директории bin в виндяшный path. Согласен, сделано. sherzod_ вот вам простой make который использовался в более ранних версиях qt, поместите его в bin папке qt. make.bat @echo off mingw32-make %* Почему нет, можно и так :) sherzod_ __________________ How to Build the QPSQL Plugin on Windows Install the appropriate PostgreSQL developer libraries for your compiler. Assuming that PostgreSQL was installed in C:\psql, build the plugin as follows: cd %QTDIR%\src\plugins\sqldrivers\psql qmake "INCLUDEPATH+=C:\psql\include" "LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro nmake __________________ Видать давно Троли постргесс не ставили. Ну нет там такой поддиректории ...\ms\... Там просто C:\psql\lib\libpq.lib sherzod_ драйвер правильно загрузится лишь когда все используемые им библиотеки будут или в system32 или в папке программы. проверьте зависимости. Эх, кабы знать как проверить, то мыбы ух! sherzod_ когда все зависимости будут решены, можно будет решать куда его совать, это вам подскажет QApplication::libraryPaths(); Это в смысле посмотреть в рантайме куда путь QApplication::libraryPaths() укажет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 17:45 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Владимир Логуновsherzod_ драйвер правильно загрузится лишь когда все используемые им библиотеки будут или в system32 или в папке программы. проверьте зависимости. Эх, кабы знать как проверить, то мыбы ух!Открой для себя волшебную утилиту http://www.dependencywalker.com/ Она точно скажет какие dll нужны и где система их сейчас видит. Но она не поможет на динамически загружаемых библиотеках (в смысле плагинах). Владимир Логуновsherzod_ когда все зависимости будут решены, можно будет решать куда его совать, это вам подскажет QApplication::libraryPaths();Это в смысле посмотреть в рантайме куда путь QApplication::libraryPaths() укажет ?Да. Это даст список путей по которым программа ищет свои плагины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 18:10 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
sherzod_ Открой для себя волшебную утилиту http://www.dependencywalker.com/ Она точно скажет какие dll нужны и где система их сейчас видит. Но она не поможет на динамически загружаемых библиотеках (в смысле плагинах). Спасибо, помогло. В моём случае надо было добавить в системную переменную PATH следующие элементы: e:\Qt\2010.02\mingw\bin\; e:\Qt\2010.02\qt\bin\; c:\psql\lib\; c:\psql\bin\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2010, 18:32 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
насчет libraryPaths(), можно использовать судя по документации, так же addLibraryPath(const QString& path), и уж точно установить папку поиска плагинов и библиотек, но на практике в отношении надежности(будет ли это везде и всегда работать) IMH не проверял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 08:30 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
А я проверил только что. На Kubuntu 9.10 + QT Creator 1.3.82 добавление в перечень путей поиска моей поддиректории /lib ничего не даёт :( Ни драйвер постргесса , ни библиотеки NCReport-ёра оттуда не загружаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2010, 15:13 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Друзья, у меня есть 2-а вопроса: не проходит команда configure -I "c:\psql\include" -L "c:\psql\lib" -plugin-sql-psql и исходники выдают при make массу ошибок. На борту: Win, QtSDK 4.8.1. Если у кого есть правильные исходники -очень прошу - выложите, пожалуйста. Буду рад и готовому драйверу, но не халявщик в душе и соберу сам. ) Спасибо! Исходники, выдающие ошибки приложил к посту. Модератор: Как твоё сообщение относится к исходному посту данной ветки ? Если никак, опубликуй его отдельной веткой (начни новую), а это сообщение я потом удалю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 17:13 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Pupil__, Как собирать "драйвера" для QT SQL написано тут: http://qt-project.org/doc/qt-5/sql-driver.html#supported-databases Ты собираешь их неправильно -- configure вызывать НЕ НУЖНО. Вместо этого используется утилита qmake. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 18:08 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
MasterZiv, благодарю за информацию! Возможно, у меня кривые руки - я теоретик по большей части. Что касается практики, то QtSDK 1.2.1 offline (исходников QtSDK нет), PostgreSQL 9.3. Не прошло у меня configure я и "забил" на него. Не поверишь, но: ""How to Build the QPSQL Plugin on Windows Install the appropriate PostgreSQL developer libraries for your compiler. Assuming that PostgreSQL was installed in C:\psql, build the plugin as follows: cd %QTDIR%\src\plugins\sqldrivers\psql qmake "INCLUDEPATH+=C:/psql/include" "LIBS+=C:/psql/lib/ms/libpq.lib" psql.pro nmake"' Мои действия: 1. PostgreSQL установлен в директорию: С:\psql\ 2. Смысла делать cd %QTDIR%\src\plugins\sqldrivers\psql не вижу, так как у меня отсутствует данная директория ) делаю cd С:\src - исходники старого драйвера мне принес приятель. И мы оба не понимаем - должны они подходить для данной платформы или нет. ) Если есть исходники, которые 100% корректные для QtSDK 1.2.1 и Postgre 9.3. - прошу выложить или кинуть линк (Низкий поклон!!!) 3.nmake - с чем его едят, файл с каким названием отвечает за данную операцию (qmake - minqw32-...exe) и надо ли путь к nmake прописывать в переменную окружения Оси? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 13:51 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
MasterZiv, про nmake - у меня не msvc, а mingw ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 14:51 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Pupil__MasterZiv, про nmake - у меня не msvc, а mingw ) Тогда не nmake , а make или gmake. Мог бы и сам догадаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 13:14 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Pupil__Мои действия: 2. Смысла делать cd %QTDIR%\src\plugins\sqldrivers\psql не вижу, так как у меня отсутствует данная директория ) Это директория с исходнимами "драйвера" SQL для Postgres. Если у тебя её нет, то что ты собираешься собирать -- не понятно. Pupil__ делаю cd С:\src - исходники старого драйвера мне принес приятель. Если ты будешь собирать исходники старого "драйвера" для нового QT, получится полная хрень. Тебе надо собирать "драйвер" из исходников именно того QT, который ты собираешься использовать. Его не нужно искать, он лежит в исходниках QT, которые тольконадо попросить установить (или доустановить) при установке. Последние QT ставятся вообще из интернета инсталером, там это очень легко доставить. Pupil__И мы оба не понимаем - должны они подходить для данной платформы или нет. ) Если есть исходники, которые 100% корректные для QtSDK 1.2.1 и Postgre 9.3. - прошу выложить или кинуть линк (Низкий поклон!!!) QtSDK 1.2.1 -- это что за зверь ? сейчас QT 5.3.1 последний. Pupil__3.nmake - с чем его едят, файл с каким названием отвечает за данную операцию (qmake - minqw32-...exe) и надо ли путь к nmake прописывать в переменную окружения Оси? это аналого утилиты make из мира Юникс, но сделаный и доделанный Microsoft-ом. В MinGW идёт свой make (это GNU make) , он называется либо make, либо gmake, либо mingw-make, как ты написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 13:21 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Скачал исходники 4.8.1. Пытаюсь собрать в креаторе плагин Postgre, оно у меня выдает: debug\moc_qsql_psql.cpp:68: error: definition of static data member 'QPSQLDriver::staticMetaObjectExtraData' of dllimport'd class Что с этим делать? При попытке собрать в консоли - также не проходит сборка Или мне весь Qt 4.8.1 полностью пересобрать из сорцов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 11:10 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Я не пишу на последнем Qt в силе обстоятельства. То, что Порш лучше Жигулей - известно всем ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 11:12 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
QtSdk-offline-win-x86-v1_2_1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 11:28 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Pupil__Я не пишу на последнем Qt в силе обстоятельства. Зря. Хорошо, если оно всё соберётся с последним Postgres... А если нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 16:28 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
Pupil__Скачал исходники 4.8.1. Пытаюсь собрать в креаторе плагин Postgre, оно у меня выдает: debug\moc_qsql_psql.cpp:68: error: definition of static data member 'QPSQLDriver::staticMetaObjectExtraData' of dllimport'd class Что с этим делать? При попытке собрать в консоли - также не проходит сборка Ты не привёл полностью ошибку, я не знаю, что делать. Сообщение об ошибке явно обрублено. Напиши полностью, что делал, какую комманду запускал, и весь её вывод. Если он большой, выдели одну ошибку характерную, но так, чтобы её текст был виден целиком, лучше прихватить чуть больше информации, чем обрезать. Если много -- используй при оформлении сообщения spoiler (находится под кнопкой "дополнит."). Пока это похоже на использование неверных конфигураций -- собираешь для QT в виде DLL, а исползуешь библиотеки от static lib или наоборот. Pupil__Или мне весь Qt 4.8.1 полностью пересобрать из сорцов? Нет, конечно же нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 16:33 |
|
||
|
Qt + Postgresql
|
|||
|---|---|---|---|
|
#18+
авторЗря. Хорошо, если оно всё соберётся с последним Postgres... А если нет ? - Застрелюсь авторТы не привёл полностью ошибку, я не знаю, что делать. Сообщение об ошибке явно обрублено. Напиши полностью, что делал, какую комманду запускал, и весь её вывод. Если он большой, выдели одну ошибку характерную, но так, чтобы её текст был виден целиком, лучше прихватить чуть больше информации, чем обрезать. Если много -- используй при оформлении сообщения spoiler (находится под кнопкой "дополнит."). Пока это похоже на использование неверных конфигураций -- собираешь для QT в виде DLL, а исползуешь библиотеки от static lib или наоборот. 16:48:30: Выполняется сборка проекта psql... 16:48:30: Настройки не изменились, этап qmake пропускается. 16:48:30: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe» C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Debug mingw32-make.exe[1]: Entering directory `C:/QtSDK/src/psql' g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtGui" -I"..\..\Desktop\Qt\4.8.1\mingw\include\QtSql" -I"..\..\Desktop\Qt\4.8.1\mingw\include" -I"..\..\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"debug" -I"..\..\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o debug\moc_qsql_psql.o debug\moc_qsql_psql.cpp mingw32-make.exe[1]: Leaving directory `C:/QtSDK/src/psql' debug\moc_qsql_psql.cpp:50: warning: 'static void QPSQLDriver::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored debug\moc_qsql_psql.cpp:68: warning: 'QPSQLDriver::staticMetaObjectExtraData' redeclared without dllimport attribute after being referenced with dll linkage debug\moc_qsql_psql.cpp:72: warning: 'QPSQLDriver::staticMetaObject' redeclared without dllimport attribute after being referenced with dll linkage debug\moc_qsql_psql.cpp:81: warning: 'virtual const QMetaObject* QPSQLDriver::metaObject() const' redeclared without dllimport attribute: previous dllimport ignored debug\moc_qsql_psql.cpp:86: warning: 'virtual void* QPSQLDriver::qt_metacast(const char*)' redeclared without dllimport attribute: previous dllimport ignored debug\moc_qsql_psql.cpp:94: warning: 'virtual int QPSQLDriver::qt_metacall(QMetaObject::Call, int, void**)' redeclared without dllimport attribute: previous dllimport ignored debug\moc_qsql_psql.cpp:68: error: definition of static data member 'QPSQLDriver::staticMetaObjectExtraData' of dllimport'd class mingw32-make.exe[1]: *** [debug/moc_qsql_psql.o] Error 1 mingw32-make.exe: *** [debug] Error 2 16:48:31: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился с кодом 2. Возникла ошибка при сборке проекта psql (цель: Desktop) Во время выполнения сборки на этапе «Сборка» ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 16:51 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=36547794&tid=2019313]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 172ms |

| 0 / 0 |
