LINUX.ORG.RU

Qt4 + PostgreSQL под Windows


0

0

Здравствуйте.
Мне необходимо организовать доступ из программы на Qt4 к БД на серваке PostgreSQL. Весь вопрос состоит в том, что в версии под Windows, распространяемой Nokia драйверов для postgre нет. (В линуксе я с этим не сталкивался, ибо гента)

Соответственно, есть два варианта: 1. скомпилить сами дрова и подсунуть их проге - у меня ни в какую не заработало (прога падает в корку); 2. Перекомпилить Qt4, точнее QtSql с поддержкой postgre. Весь вопрос в том, как это сделать? В наличии имеется QtSDK (с сайта qtsoftware.com).

Подскажите, может кто уже таким занимался? Или есть еще какой вариант заставить ее работать с БД?

ЗЫ. А в коммерческой версии все драйвера вкомпилены :(


Re: Qt4 + PostgreSQL под Windows

cd $QTDIR/src/plugins/sqldrivers/psql

qmake "INCLUDEPATH+=/usr/include/pgsql" "LIBS+=-L/usr/lib -lpq" psql.pro

make

alfss ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от alfss

Re: Qt4 + PostgreSQL под Windows

Так делал. Но после компиляции Qt не видит этих драйверов (пишет, что драйвер такой-то не загружен). Пробовал подкладывать их в разные папки, как советуют в инете. Наилучший результат - полное зависание приложения :(

Slader ()

Re: Qt4 + PostgreSQL под Windows

В postgresql-dev(или как он там под вин называется?) идут драйверы Си. Почему бы их не использовать?

golodranez ★★★★ ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от panter_dsd

Re: Qt4 + PostgreSQL под Windows

Т.е. дрова в этом случае вкомпилятся в QtSql.dll.

Разве? По-моему, они там плагинами сделаны.

Ximen ★★★★ ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от Slader

Re: Qt4 + PostgreSQL под Windows

Хочешь, делаешь плагином. Хочешь, делаешь монолитом.
Пересобрать очень просто. Нужно открыть консоль, перейти в корневой каталог Кути, запустить make confclean, запустить configure.exe с нужными параметрами, сделать make. Вот и все.

Пример конфигура:

configure.exe -debug-and-release -qt-sql-odbc -qt-sql-psql -I c:\postgresql\include -L c:\postgresql\lib -qt-sql-sqlite

Будут проблемы, пиши.

panter_dsd ★★★★ ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от panter_dsd

Re: Qt4 + PostgreSQL под Windows

Всем доброго дня. У меня, собственно, та же проблема, пытался решить её и таким способом - сконфигурировать кьют изначально с постргесом, но во время сборки вылетела ошибка:

>g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\2009.03\qt\lib\libQtWebKitd4.a - o ..\..\..\..\lib\QtWebKitd4.dll object_script.QtWebKitd.Debug -L"c:\Qt\2009.03 \qt\lib" -L"c:\Qt\2009.03\qt\lib" tmp\obj\debug_shared\QtWebKitd_resource_res.o -Lc:\pgsql\lib -lwinmm -lgdi32 -luser32 -lwinmm -ladvapi32 -lgdi32 -lshell32 -ls hlwapi -luser32 -lversion -lQtGuid4 -lQtNetworkd4 -lQtCored4 Creating library file: c:\Qt\2009.03\qt\lib\libQtWebKitd4.a ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 14c): undefined reference to `vtable for WebCore::FormDataIODevice' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 2a4): undefined reference to `vtable for WebCore::FormDataIODevice' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 3e8): undefined reference to `vtable for WebCore::FormDataIODevice' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 50c): undefined reference to `vtable for WebCore::FormDataIODevice' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 630): undefined reference to `vtable for WebCore::FormDataIODevice' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x d8e): undefined reference to `vtable for WebCore::QNetworkReplyHandler' ./tmp\obj\debug_shared\QNetworkReplyHandler.o:QNetworkReplyHandler.cpp:(.text+0 x 10a0): undefined reference to `vtable for WebCore::QNetworkReplyHandler' ./tmp\obj\debug_shared\FrameLoaderClientQt.o:FrameLoaderClientQt.cpp:(.text+0x4 e 58): undefined reference to `QWebPage::unsupportedContent(QNetworkReply*)' ./tmp\obj\debug_shared\FrameLoaderClientQt.o:FrameLoaderClientQt.cpp:(.text+0x6 1 1a): undefined reference to `QWebPage::downloadRequested(QNetworkRequest const&) ' collect2: ld returned 1 exit status mingw32-make[2]: *** [..\..\..\..\lib\QtWebKitd4.dll] Error 1 mingw32-make[2]: Leaving directory `C:/Qt/2009.03/qt/src/3rdparty/webkit/WebCore ' mingw32-make[1]: *** [debug-all] Error 2 mingw32-make[1]: Leaving directory `C:/Qt/2009.03/qt/src/3rdparty/webkit/WebCore ' mingw32-make: *** [sub-webkit-make_default-ordered] Error 2

C:\Qt\2009.03\qt>

Need help. WinXP SP2.

Alexey_Che ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от panter_dsd

Re: Qt4 + PostgreSQL под Windows

Собрал без WebKit и Phonon. Собиралось 4 часа 8)
Работает замечательно, дрова к БД вкомпилились, все ок!

Slader ()
Ответ на: Re: Qt4 + PostgreSQL под Windows от Slader

Re: Qt4 + PostgreSQL под Windows

В статике вебкит не собирается, это известный баг, а вот в динамике почему глючит, я не знаю. Как вариант все удалить, распаковать по новой из исходников и попытаться снова собрать.

panter_dsd ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.