Название: QPSQL для PostgreSQL 9.0 под WinXP x64 [РЕШЕНО] Отправлено: chagovets от Март 07, 2011, 20:12 Не удаётся скомпилировать драйвер для PostgreSQL 9.0 под WinXP x64
Qt 4.7.1 Creator 2.1.0 Обращаю внимание - и сервер и система 64 бита. Компилирование в 32 бит проходило без всяких проблем. Все пути прописаны. Изменения в исходники драйвера для поддержки версии выше 8.2 внесены - всё успешно компилировалось и работало. Пробовал различные варианты. Из командной строки : Цитировать C:\Qt\4.7.1\src\plugins\sqldrivers\psql>qmake "INCLUDEPATH+=C:/PostgreSQL/9.0/in Т.е. C:\PostgreSQL\9.0\include\ не видны не смотря на то что указаны...clude/" "LIBS+=C:/PostgreSQL/9.0/lib/libpq.lib" psql.pro C:\Qt\4.7.1\src\plugins\sqldrivers\psql>make mingw32-make -f Makefile.Debug all mingw32-make[1]: Entering directory `C:/Qt/4.7.1/src/plugins/sqldrivers/psql' g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT - DQT_EVAL -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT _SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMX ...skiped... Creating library file: c:\Qt\4.7.1\plugins\sqldrivers\libqsqlpsqld4.a tmp/obj/debug_shared/qsql_psql.o: In function `qMakeError': C:\Qt\4.7.1\src\plugins\sqldrivers\psql/../../../sql/drivers/psql/qsql_psql.cpp: 176: undefined reference to `PQerrorMessage' tmp/obj/debug_shared/qsql_psql.o:C:\Qt\4.7.1\src\plugins\sqldrivers\psql/../../. ./sql/drivers/psql/qsql_psql.cpp:186: undefined reference to `PQresultStatus' tmp/obj/debug_shared/qsql_psql.o:C:\Qt\4.7.1\src\plugins\sqldrivers\psql/../../. ./sql/drivers/psql/qsql_psql.cpp:190: undefined reference to `PQntuples' tmp/obj/debug_shared/qsql_psql.o: In function `qDeallocatePreparedStmt': C:\Qt\4.7.1\src\plugins\sqldrivers\psql/../../../sql/drivers/psql/qsql_psql.cpp: 254: undefined reference to `PQexec' ...skiped... collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlpsqld4.dll] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/4.7.1/src/plugins/sqldrivers/psql' mingw32-make: *** [debug-all] Error 2 Что подтверждается открыв проект в Creator - #include <libpq-fe.h> #include <pg_config.h> No such file or directory Пробую компилировать из Creatora добавив в проект Цитировать INCLUDEPATH+= C:/PostgreSQL/9.0/include Получаю:LIBS+= C:/PostgreSQL/9.0/lib/libpq.lib Цитировать c:/qt/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lpq Дальше пробую:collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlpsqld4.dll] Error 1 mingw32-make: *** [debug-all] Error 2 The process "C:\QT\mingw\bin\mingw32-make.exe" exited with code 2. Error while building project psql (target: Desktop) When executing build step 'Make' Цитировать INCLUDEPATH+= C:/PostgreSQL/9.0/include Итог:LIBS+=-LC:/PostgreSQL/9.0/lib -lpq Цитировать C:/PostgreSQL/9.0/lib/libpq.dll: file not recognized: File format not recognized collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlpsqld4.dll] Error 1 mingw32-make: *** [debug-all] Error 2 The process "C:\QT\mingw\bin\mingw32-make.exe" exited with code 2. Error while building project psql (target: Desktop) When executing build step 'Make' Кто-нибудь пробовал скомпилировать под 64 бит? В чём тут загвоздка? MinGW? Название: Re: QPSQL для PostgreSQL 9.0 под WinXP x64 Отправлено: chagovets от Март 10, 2011, 15:57 Ну раз ни кто не пробовал тогда расскажу :)
Проблема конечно же заключается в несовместимости 32-х битных библиотек Qt и 64-х битных самого x64 Postgres 9. Решил собрать Qt 4.7.2 под x64 (кстати изменения для версий Postgres выше 8.2, в том числе и 9 в 4.7.2 уже внесены). С MinGW собрать x64 Qt не удаётся ни под каким соусом - этот (http://sourceforge.net/projects/mingw-w64/) вываливается с ошибками не смотря ни на какие танцы с бубном, этот же (http://sourceforge.net/projects/mingw/) компилит только 32 битный код. Ни чего не осталось как использовать компилятор MS... Собственно всё описано тут (http://habrahabr.ru/blogs/personal/79233/). После сборки Qt 4.7.2 x64 драйвер для Postgres 9 x64 собрался без вопросов. P.S. Если кому нужны x64 Qt 4.7.2 и Qt Creator 2.1.0 - обращайтесь Название: Re: QPSQL для PostgreSQL 9.0 под WinXP x64 [РЕШЕНО] Отправлено: evgeniy от Сентябрь 05, 2011, 15:27 Спасибо! Очень полезная информация.
Название: Re: QPSQL для PostgreSQL 9.0 под WinXP x64 [РЕШЕНО] Отправлено: Josefina от Сентябрь 15, 2014, 18:30 Апну темку, вдруг кому пригодится) я решила данную проблему иначе-установила 32х-битный постгре. Драйвер успешно скомпилися))
Название: Re: QPSQL для PostgreSQL 9.0 под WinXP x64 [РЕШЕНО] Отправлено: sergek от Сентябрь 16, 2014, 18:17 Где-то встречал, что разрядность PostgreSQL и Qt должны совпадать.
|