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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка драйвера QPSQL  (Прочитано 10851 раз)
Viktor
Гость
« : Май 18, 2016, 17:44 »

Знаю, тема заезженная... . Но помогите начинающему программисту. Читал я кучу статей по тому, как собрать QPSQL для дальнейшего подключения к Postgresql... . И вроде всё делал как говорят, но выскакивают ошибки при сборке и всё... .
У меня Win 7, 64 битная
Postgresql 9.3
qt 5.5

Значит в файле psql.pro , который находится по адресу E:\Qt\Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\psql написал следующие две строчки:

INCLUDEPATH +="C:/PostgreSQL/9.3/include"
LIBS +="C:/PostgreSQL/9.3/lib/libpq.lib"

В файле qsql_psql , который находится по адресу E:\Qt\Qt5.5.1\5.5\Src\qtbase\src\sql\drivers\psql закомментировал следующее и получилось так

HEADERS += $$PWD/qsql_psql_p.h
SOURCES += $$PWD/qsql_psql.cpp

unix|mingw {
    LIBS += $$QT_LFLAGS_PSQL
#    !contains(LIBS, .*pq.*):LIBS += -lpq
#    QMAKE_CXXFLAGS *= $$QT_CFLAGS_PSQL
#} else {
    !contains(LIBS, .*pq.*):LIBS += -llibpq -lws2_32 -ladvapi32
}

Но при сборке появилось 69 ошибок подобного типа


может кто подскажет как устранить ошибки или что я делал не так?
Записан
kai666_73
Крякер
****
Offline Offline

Сообщений: 319


Просмотр профиля
« Ответ #1 : Май 18, 2016, 17:53 »

А чем собираете? мингвой или MSVC?
Записан
Viktor
Гость
« Ответ #2 : Май 19, 2016, 09:29 »

А чем собираете? мингвой или MSVC?

MinGW 4.9.2 32 bit
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #3 : Май 19, 2016, 10:04 »

Но при сборке появилось 69 ошибок подобного типа
может кто подскажет как устранить ошибки или что я делал не так?

либу pq не указал при линковке
Записан
Viktor
Гость
« Ответ #4 : Май 19, 2016, 12:14 »

Но при сборке появилось 69 ошибок подобного типа
может кто подскажет как устранить ошибки или что я делал не так?

либу pq не указал при линковке


Указывал.
2-мя способами пытался собрать. Во всех одни и те же ошибки... .
Записан
Viktor
Гость
« Ответ #5 : Май 19, 2016, 12:32 »

Вот ещё какие ошибки и предупреждения выскакивают:


Записан
Aleksey_A
Гость
« Ответ #6 : Май 19, 2016, 13:48 »

Собирал QPSQL последний раз под Qt 5.4.2 с версией PostgreSQL 9.1. Версии Postgre выше 9.1 отказались собираться (на MinGW, на MSVC не пробовал).
Возможно стоит попробовать взять версию не 9.3, а 9.1. Делал так:

Брал postgresql-9.1.хх-windows-binaries.zip (x86-32) отсюда: http://www.enterprisedb.com/products-services-training/pgbindownload
Командную строку открывать из Пуск->Qt 5.4.2 (просто чтобы запустить командную строку сразу с нужными переменными окружения)

1. Делаем путь до каталогов include и lib от PostgreSQL без пробелов (разархивируем postgresql-9.1.хх-windows-binaries.zip в С:\pgsql)
2. cd C:\Qt\Qt5.4.2\5.4.2\Src\qtbase\src\plugins\sqldrivers\psql
3. qmake "INCLUDEPATH+=C:\pgsql\include" "LIBS+=C:\pgsql\lib\libpq.lib" psql.pro
4. mingw32-make
5. Скопировать qsqlpsql.dll из C:\Qt\Qt5.4.2\5.4.2\Src\qtbase\plugins\sqldrivers в подпапку /sqldrivers каталога *.exe
6. копируем из C:/pgsql/bin файлы libpq.dll,libxml2.dll,ssleay32.dll,zlib1.dll,libeay32.dll,libiconv-2.dll,libxslt.dll,libintl-8.dll в папку с *.exe
« Последнее редактирование: Май 19, 2016, 14:23 от Aleksey_A » Записан
Viktor
Гость
« Ответ #7 : Май 19, 2016, 14:55 »

Собирал QPSQL последний раз под Qt 5.4.2 с версией PostgreSQL 9.1. Версии Postgre выше 9.1 отказались собираться (на MinGW, на MSVC не пробовал).
Возможно стоит попробовать взять версию не 9.3, а 9.1. Делал так:

Брал postgresql-9.1.хх-windows-binaries.zip (x86-32) отсюда: http://www.enterprisedb.com/products-services-training/pgbindownload
Командную строку открывать из Пуск->Qt 5.4.2 (просто чтобы запустить командную строку сразу с нужными переменными окружения)

1. Делаем путь до каталогов include и lib от PostgreSQL без пробелов (разархивируем postgresql-9.1.хх-windows-binaries.zip в С:\pgsql)
2. cd C:\Qt\Qt5.4.2\5.4.2\Src\qtbase\src\plugins\sqldrivers\psql
3. qmake "INCLUDEPATH+=C:\pgsql\include" "LIBS+=C:\pgsql\lib\libpq.lib" psql.pro
4. mingw32-make
5. Скопировать qsqlpsql.dll из C:\Qt\Qt5.4.2\5.4.2\Src\qtbase\plugins\sqldrivers в подпапку /sqldrivers каталога *.exe
6. копируем из C:/pgsql/bin файлы libpq.dll,libxml2.dll,ssleay32.dll,zlib1.dll,libeay32.dll,libiconv-2.dll,libxslt.dll,libintl-8.dll в папку с *.exe


Попробовал сделать как ты сказал. Скачал версию Postgresql 9.1 но всё таже самая конетель. При компиляции драйверов выдаёт всё те же ошибки... .
Записан
Aleksey_A
Гость
« Ответ #8 : Май 19, 2016, 15:25 »

А у Вас точно совпадает разрядность? PostgreSQL в вашем случае (для MinGW 32bit) должна быть именно x86-32.
Вот в этой теме очень похожие ошибки: http://www.prog.org.ru/topic_17100_0.html

И как вариант еще почистить каталог сборки от старого хлама:
1. cd C:\Qt\Qt5.x.x\5.x\Src\qtbase\src\plugins\sqldrivers\psql
2. mingw32-make clean
или руками поудалять .moc, .obj, Makefile и т.д. в C:\Qt\Qt5.x.x\5.x\Src\qtbase\src\plugins\sqldrivers\psql

З.Ы. Проверил на Qt 5.6.0-MinGW-32bit, драйвер для PostgreSQL 9.1 создается, для 9.3 - нет. Делал так же,как и писал в пред. сообщении (ну вместо путей Qt5.4.2 -> Qt5.6.0)
Записан
Viktor
Гость
« Ответ #9 : Май 19, 2016, 16:59 »

А у Вас точно совпадает разрядность? PostgreSQL в вашем случае (для MinGW 32bit) должна быть именно x86-32.
Вот в этой теме очень похожие ошибки: http://www.prog.org.ru/topic_17100_0.html

И как вариант еще почистить каталог сборки от старого хлама:
1. cd C:\Qt\Qt5.x.x\5.x\Src\qtbase\src\plugins\sqldrivers\psql
2. mingw32-make clean
или руками поудалять .moc, .obj, Makefile и т.д. в C:\Qt\Qt5.x.x\5.x\Src\qtbase\src\plugins\sqldrivers\psql

З.Ы. Проверил на Qt 5.6.0-MinGW-32bit, драйвер для PostgreSQL 9.1 создается, для 9.3 - нет. Делал так же,как и писал в пред. сообщении (ну вместо путей Qt5.4.2 -> Qt5.6.0)


Получилось! Вы меня спасли))) да, у меня была x86-64. Я поставил 32 и всё получилось)
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #10 : Май 19, 2016, 21:31 »

а зачем самому собирать драйвер, ведь он собирается при сборке qt ?
я думал необходимо в нём чтото поменять )
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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