Название: Драйвер PostgreSQL Отправлено: AYK от Март 07, 2007, 10:42 Уважаемые коллеги!
Обращаяюсь к Вам за помощью. Помогите разобраться. Работаю под Windows XP. Пользовался версией QT 4.0.0. И у меня был собранный драйвер для работы с PostgreSQL. Решил перейти на QT 4.2.2 - переустановил библиотеки, а qsqlpsql.dll из версии 4.0.0 просто скопировал в каталог плагинов. Пересобрал приложения и как и предполагал - мои приложения перестали работать. Решил тогда собрать этот драйвер под 4.2.2 сам. Посмотрел документацию, отредактировал файл проекта, чтобы мэйк видел инклуды и либы от постгрескула: /*================= TARGET = qsqlpsql HEADERS = ../../../sql/drivers/psql/qsql_psql.h SOURCES = main.cpp \ ../../../sql/drivers/psql/qsql_psql.cpp INCLUDEPATH += "C:\Program Files\PostgreSQL\8.0\include" LIBS += "C:\Program Files\PostgreSQL\8.0\lib\ms\libpq.lib" unix: { !isEmpty(QT_LFLAGS_PSQL) { LIBS *= $$QT_LFLAGS_PSQL QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL } !contains(LIBS, .*pq.*):LIBS *= -lpq } win32:!contains(LIBS, .*pq.* ) { !win32-g++:LIBS *= -llibpq win32-g++:LIBS *= -lpq LIBS *= -lws2_32 -ladvapi32 } include(../qsqldriverbase.pri) /*================================ выполнил qmake.exe - сформировались: Makefile Makefile.Debug Makefile.Release выполнил mingw32-make.exe и получил ошибку: C:\Qt\4.2.2\src\plugins\sqldrivers\psql>mingw32-make.exe c:/mingw/bin/mingw32-make.exe -f Makefile.Release Makefile.Release:314: *** multiple target patterns. Stop. mingw32-make.exe[1]: Entering directory `C:/Qt/4.2.2/src/plugins/sqldrivers/psql' mingw32-make.exe[1]: Leaving directory `C:/Qt/4.2.2/src/plugins/sqldrivers/psql' c:\mingw\bin\mingw32-make.exe: *** [release] Error 2 Что же я не так делаю или чего не доделываю??? Спасибо. Название: Драйвер PostgreSQL Отправлено: burunduk от Март 07, 2007, 10:48 да, есть там небольшая беда :)
лучше папки lib и include скопировать куда-нить, чтобы путь к ним был попроще и без пробелов я вот так собираю Qt с поддержкой Postgres: configure.exe -fast -qt-sql-psql -I c:/qt/4.2.2/pg823/include -L c:/qt/4.2.2/pg823/lib -l libpq Название: Драйвер PostgreSQL Отправлено: WW от Март 07, 2007, 15:04 или переведи пути в формат 8.3 (C:\PROGRA~1\.....)
тогда соберется и там Название: Драйвер PostgreSQL Отправлено: AYK от Март 09, 2007, 22:44 спасибо, ребята! :)
действительно, ваши предложения помогли решить задачу. QT я пересобрал, причем получил и дебугерные варианты библиотек, чего по-умолчанию (при установке) не было! Ну и драйвер для PostgreSQL собрал само-собой! Теперь проги работают! :D Кому нужен драйвер-плагин для PostgreSQL собранный под QT 4.2.2 прошу запрос на azimut-it@mail.ru :lol: Название: Драйвер PostgreSQL Отправлено: AYK от Март 19, 2007, 17:42 Добрый день, коллеги!
Опять с вопосом. Пытаюсь внедрить КюТ 4.2.3. Установил КюТ 4.2.3 под вин опен сорс релизный вариант. psql как плагин собрал Проги пересобрал. Проги подключиться к базе не могут. Решил пересобрать КюТ Собираю так: configure.exe -fast -debug-and-release -qmake -qt-sql-psql -plugin-sql-psql -qt-gif -qt-libpng -qt-libjpeg -qmake -qt-style-windows -qt-style-windowsxp -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -saveconfig azimuth.cfg -I /PostgreSQL/8.2/include -L /PostgreSQL/8.2/lib/ms -l libpq.lib это отрабатывает. запускаю mingw32-make он мне выдает ....... gcc -c -O2 -O2 -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_BOOTSTRAPPED -DQT_RCC -DQT_LITE_UNICODE -DQT_NO_DATASTREA M -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_UNICODETABLES -DQT_NO_LIBRARY -DQT_NO_SYSTEMLOCALE -DQT_NODLL -I"..\..\core lib\arch\generic" -I"C:/Qt/4.2.3/include" -I"." -I"C:/Qt/4.2.3/include/QtCore" -I"C:/Qt/4.2.3/include/QtXml" -I"..\. .\3rdparty\zlib" -I"." -I"..\..\..\mkspecs\win32-g++" -o tmp\obj\release_shared\zutil.o ..\..\3rdparty\zlib\zutil.c g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,- subsystem,console -o "..\..\..\bin\rcc.exe" object_script.rcc.Release -L/PostgreSQL/8.2/lib/ms -llibpq.lib c:\mingw\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -llibpq.lib collect2: ld returned 1 exit status mingw32-make[6]: *** [..\..\..\bin\rcc.exe] Error 1 mingw32-make[6]: Leaving directory `C:/Qt/4.2.3/src/tools/rcc' mingw32-make[5]: *** [release] Error 2 mingw32-make[5]: Leaving directory `C:/Qt/4.2.3/src/tools/rcc' mingw32-make[4]: *** [all] Error 2 mingw32-make[4]: Leaving directory `C:/Qt/4.2.3/src/tools/rcc' mingw32-make[3]: *** [sub-tools_rcc-make_default] Error 2 mingw32-make[3]: Leaving directory `C:/Qt/4.2.3/src' mingw32-make[2]: *** [all] Error 2 mingw32-make[2]: Leaving directory `C:/Qt/4.2.3/src' mingw32-make[1]: *** [sub-src-make_default-ordered] Error 2 mingw32-make[1]: Leaving directory `C:/Qt/4.2.3' mingw32-make: *** [all] Error 2 Путь без пробелов, без русских букв. Что опять не так? Название: Драйвер PostgreSQL Отправлено: L.Marvell от Март 19, 2007, 19:25 Есть предположение, что ".lib" лишнее, а писать просто -l libpq
Название: Драйвер PostgreSQL Отправлено: sector от Март 20, 2007, 09:32 Коллега! Вам истину глаголят по поводу .lib))) Это никак не прокатит...((( Так что я думаю вопрос решен...
Зы: Пользуясь случаем передаю большой привет компании Азимут Ай-Ти от гламурных админов Спецавтоматики))) Название: Драйвер PostgreSQL Отправлено: AYK от Март 20, 2007, 13:49 Цитата: "sector" Коллега! Вам истину глаголят по поводу .lib))) Это никак не прокатит...((( Так что я думаю вопрос решен... Зы: Пользуясь случаем передаю большой привет компании Азимут Ай-Ти от гламурных админов Спецавтоматики))) Спасибо за привет! Приятно встретить в форуме не просто коллегу но и гламурного земляка. javascript:emoticon('8)') Ребята спасибо за советы. Методом научного тыка и сравнения с другими мэйк файлами пришел к тому же выводу самомстоятельно и как следствие получил желаемый результат!javascript:emoticon(':D') Большое спасибо за участие.javascript:emoticon(':mrgreen:') Название: Re: Драйвер PostgreSQL Отправлено: fatdh от Март 29, 2010, 19:09 Доброго времени суток, уважаемые!
Столкнулся с такой ситуацией: Есть GUI приложение, которое работает с PostgreSQL. Структура папок такая: Основная папка, в ней qt библиотеки и исполняемый файл .exe. Также в этой папке есть файл qt.conf - в котором прописано [PATH] Plugins =. и подпапка "sqldrivers" в которой лежит драйвер к PostgreSQL. Так вот проблема, на некоторых Windows XP (2 из 10) при запуске приложения выкидывает ошибку что драйвер не загружен. При этом на остальных XP работает нормально. Пытались локализовать в чем может быть проблема, но ничего не нашли. Сначала подумали на сервис паки, на одной машине стоит 1й на второй 3й, а на остальных (на которых работет приложение) 2й. Но как-то слабовероятно помоему. Потом подумали, что может из-за русской локализации windows, но опять что-то странное, из 8 машин, на которых нормально работает приложение, половина имеет русскую локаль и переведены они на русский (но у них какие-то скины стоят не стандартные, вполне вероятно, что это англицская винда, а скин делает перевод).. Может кто сталкивался с такой проблемой, подскажите плз. Спасибо! Название: Re: Драйвер PostgreSQL Отправлено: Пантер от Март 29, 2010, 19:46 А libpq.dll на всех машинах присутствует?
Название: Re: Драйвер PostgreSQL Отправлено: fatdh от Март 29, 2010, 20:13 Да, на серваке лежит архив, все машины с этого сервака берут архив и распаковывают в одно и тоже место на диск C:\
Название: Re: Драйвер PostgreSQL Отправлено: BaltikS от Март 29, 2010, 20:45 Рискну спросить чем собиралось и как? Если Студией, то возможны проблемы :) со всякими рода зависимостями...
Название: Re: Драйвер PostgreSQL Отправлено: fatdh от Март 30, 2010, 07:33 Доброе утро, уважаемые!
Спасибо за наводящие вопросы и то, что проявляете интерес! :) Все собиралось через mingw: Драйвер через mingw32-make, а гуишку через QT Creator (который тоже mingw32-make использует) Название: Re: Драйвер PostgreSQL Отправлено: BaltikS от Март 30, 2010, 08:16 Хм, тогда вопрос чем собирался libpq? Нужно посмотреть его зависимости.... Скорее всего дело в нём...
Название: Re: Драйвер PostgreSQL Отправлено: Пантер от Март 30, 2010, 11:28 Угу. В дистрибутиве постгрес скомпилен студией, поэтому и проблемы. Как решение таскать с собой установщик студийных дллок и манифестов или, что намного лучше, собрать постгрес мингвом.
Название: Re: Драйвер PostgreSQL Отправлено: fatdh от Март 30, 2010, 14:04 Да, точно, закачали депенденс валкер. Показывает, что не находит библиотеки msvcr80.dll
Всем огромное спасибо за дельные мысли и участие! :) Название: Re: Драйвер PostgreSQL Отправлено: kolob от Июнь 16, 2011, 11:34 Люди добрые помогите собрать драйвер для PSQL. На 4ю Qt перешел недавно.
PostgreSql установлен из бинарников. Путь к директории postgres имеет пробелы. Поэтому я скопировал либы и инклюды в корень диска С: C:\psql\include C:\psql\lib В переменной PATH все прописано также (include и lib) Собрать пытаюсь mingw постовляемой с qtcreator. Код: cd C:\Qt\4.6.1\scr\plugins\sqldrivers\psql Цитировать mingw32-make -f Makefile.Debug all Нашел в Makefile эту строку:mingw32-make[1]: Entering directory `C:/Qt/4.6.1/src/plugins/sqldrivers/psql Makefile.Debug:61: *** missing separator. Stop. mingw32-make[1]: Leaving directory `C:/Qt/4.6.1/src/plugins/sqldrivers/psql' mingw32-make: *** [debug-all] Error 2 Цитировать 58 {tmp\moc\debug_shared}.cpp{tmp\obj\debug_shared\}.obj:: 59 $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fotmp\obj\debug_shared\ @<< 60 $< 61 << Название: Re: Драйвер PostgreSQL Отправлено: kolob от Июнь 16, 2011, 12:55 Извиняюсь за беспокойство. Все получилось.
У меня в переменной QMAKESPEC - win32-msvc. Надо было переменную поменять на win32-g++ |