Russian Qt Forum
Сентябрь 30, 2024, 16:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Драйвер PostgreSQL  (Прочитано 14233 раз)
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


Что же я не так делаю или чего не доделываю???

Спасибо.
Записан
burunduk
Гость
« Ответ #1 : Март 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
Записан
WW
Гость
« Ответ #2 : Март 07, 2007, 15:04 »

или переведи пути в формат 8.3 (C:\PROGRA~1\.....)
тогда соберется и там
Записан
AYK
Гость
« Ответ #3 : Март 09, 2007, 22:44 »

спасибо, ребята!  Улыбающийся

действительно, ваши предложения помогли решить задачу.

QT я пересобрал, причем получил и дебугерные варианты библиотек, чего по-умолчанию (при установке) не было!
Ну и драйвер для PostgreSQL собрал само-собой!
Теперь проги работают! Веселый

Кому нужен драйвер-плагин для PostgreSQL собранный под QT 4.2.2
прошу запрос на azimut-it@mail.ru  :lol:
Записан
AYK
Гость
« Ответ #4 : Март 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


Путь без пробелов, без русских букв.
Что опять не так?
Записан
L.Marvell
Гость
« Ответ #5 : Март 19, 2007, 19:25 »

Есть предположение, что ".lib" лишнее, а писать просто -l libpq
Записан
sector
Гость
« Ответ #6 : Март 20, 2007, 09:32 »

Коллега! Вам истину глаголят по поводу .lib))) Это никак не прокатит...((( Так что я думаю вопрос решен...
Зы: Пользуясь случаем передаю большой привет компании Азимут Ай-Ти от гламурных админов Спецавтоматики)))
Записан
AYK
Гость
« Ответ #7 : Март 20, 2007, 13:49 »

Цитата: "sector"
Коллега! Вам истину глаголят по поводу .lib))) Это никак не прокатит...((( Так что я думаю вопрос решен...
Зы: Пользуясь случаем передаю большой привет компании Азимут Ай-Ти от гламурных админов Спецавтоматики)))

Спасибо за привет! Приятно встретить в форуме не просто коллегу но и гламурного земляка. javascript:emoticon('8)')

Ребята спасибо за советы. Методом научного тыка и сравнения с другими мэйк файлами пришел к тому же выводу самомстоятельно и как следствие получил желаемый результат!javascript:emoticon(':D')

Большое спасибо за участие.javascript:emoticon(':mrgreen:')
Записан
fatdh
Гость
« Ответ #8 : Март 29, 2010, 19:09 »

Доброго времени суток, уважаемые!

Столкнулся с такой ситуацией: Есть GUI приложение, которое работает с PostgreSQL. Структура папок такая: Основная папка, в ней qt библиотеки и исполняемый файл .exe. Также в этой папке есть файл qt.conf - в котором прописано [PATH] Plugins =. и подпапка "sqldrivers" в которой лежит драйвер к PostgreSQL. Так вот проблема, на некоторых Windows XP (2 из 10) при запуске приложения выкидывает ошибку что драйвер не загружен. При этом на остальных XP работает нормально. Пытались локализовать в чем может быть проблема, но ничего не нашли.
Сначала подумали на сервис паки, на одной машине стоит 1й на второй 3й, а на остальных (на которых работет приложение) 2й. Но как-то слабовероятно помоему. Потом подумали, что может из-за русской локализации windows, но опять что-то странное, из 8 машин, на которых нормально работает приложение, половина имеет русскую локаль и переведены они на русский (но у них какие-то скины стоят не стандартные, вполне вероятно, что это англицская винда, а скин делает перевод)..

Может кто сталкивался с такой проблемой, подскажите плз. Спасибо!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Март 29, 2010, 19:46 »

А libpq.dll на всех машинах присутствует?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
fatdh
Гость
« Ответ #10 : Март 29, 2010, 20:13 »

Да, на серваке лежит архив, все машины с этого сервака берут архив и распаковывают в одно и тоже место на диск C:\
Записан
BaltikS
Гость
« Ответ #11 : Март 29, 2010, 20:45 »

Рискну спросить чем собиралось и как? Если Студией, то возможны проблемы Улыбающийся со всякими рода зависимостями...
Записан
fatdh
Гость
« Ответ #12 : Март 30, 2010, 07:33 »

Доброе утро, уважаемые!

Спасибо за наводящие вопросы и то, что проявляете интерес! Улыбающийся

Все собиралось через mingw: Драйвер через mingw32-make, а гуишку через QT Creator (который тоже mingw32-make использует)
Записан
BaltikS
Гость
« Ответ #13 : Март 30, 2010, 08:16 »

Хм, тогда вопрос чем собирался libpq? Нужно посмотреть его зависимости.... Скорее всего дело в нём...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #14 : Март 30, 2010, 11:28 »

Угу. В дистрибутиве постгрес скомпилен студией, поэтому и проблемы. Как решение таскать с собой установщик студийных дллок и манифестов или, что намного лучше, собрать постгрес мингвом.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.143 секунд. Запросов: 22.