четверг, 4 октября 2012 г.

Сборка драйверов PostgreSQL для Qt под Windows с MinGW

В стандартной комплектации Qt SDK под Windows драйвера для работы с СУБД PostgreSQL отсутствуют. Есть несколько путей решения этой проблемы, равное количеству возможных компиляторов. Мы соберём всё это дело под MinGW, так как в этом случае нам не придётся слишком заморачиваться с вопросом версий и Service Packов, как для студийного компилятора.



Порядок действий:
1. Нам необходимо скачать исходные коды Qt. Проще всего это сделать через Maintain Qt SDK. После запуска выбираем Package Manager и жмем далее. В следующем окне выбираем как на картинке ниже:

Выбирайте исходники только той библиотеки, с который вы работаете. Загрузка остальных лишь отнимет ваше время и место на жестком диске.

2 Теперь нам необходимо мучаться с PostgreSQL. Дело в том, что
QtCreator и QtLibrary собраны под MinGW, а PostgreSQL собрана студийным
компилятором. Если у Вас Qt собрана и внедрена в Visual Studio, то все
здорово. Если нет, то придется пересобирать PostgreSQL под MinGW:

2.1 Качаем исходники postgreSQL:  http://www.postgresql.org/ftp/source/

2.2 Устанавливаем обычный PostrgeSQL и прописываем там
все настройки, дабы у нас была рабочая база.

2.3 Ставим утилиту msys, которую можно скачать по ссылке http://www.mingw.org/wiki/MSYS

2.4 В папке с msys заходим в папку etc/ и открываем файл fstab. В этом файле вы увидите строчку формата:
C:/mingw /mingw
Так вот, первую часть необходимо заменить на ваш путь до MinGW, в моём случае эта строка стала выглядеть следующим образом:
E:/Dev/QtSDK/mingw /mingw
Сохраняем изменения и запускаем MSYS (файл msys.bat).

2.5 Переходим в папку с postgreSQL, в моём случае это выглядит так:
cd /e/Dev/postgresql921
что аналогично пути:
E:\Dev\postgresql921

2.6 Запускаем конфигурирование postgreSQL командой:
./configure --without-zlib
Мы пока не заморачиваемся на конфигурацию сборки, ибо это не наша тема.

2.7 Переходим в папку с исходниками и запускаем сборку библиотеки:
cd src/
make all

3 Далее в QtCreator загружаем проект psql.pro (у меня путь такой E:\Dev\QtSDK\QtSources\4.8.0\src\plugins\sqldrivers\psql\psql.pro).
В .pro файле добавляем пути к файлам postgreSQL. В моём случае:

INCLUDEPATH += E:/Dev/postgresql921/src/include
INCLUDEPATH += E:/Dev/postgresql921/src/interfaces/libpq
LIBS+= E:/Dev/postgresql921/src/interfaces/libpq/libpq.dll

postgresql921 – директория postgreSQL с исходниками
4 Далее жмём Сборка -> собрать проект psql. Если появятся ошибки, значит вы что-то сделали не так.
5 Устанавливаем плагин, для этого жмём Сборка -> Установить проект psql

Поблагодарим моего товарища Евгения, который изначально разобрался со всем этим барахлом, и чей пост я использовал как исходник :) Можете обращаться к нему с вопросами по адресу: matzuk2@mail.ru.

2 комментария:

  1. If you are intersted in using Qt with PostgreSQL then you should try Sohag Developer
    you can download it from http://sohag-developer.com/download

    ОтветитьУдалить
  2. Спасибо, дружище, отличный мануал! Товарищу отдельное спасибо :)

    ОтветитьУдалить