Предистория:
Для личного использования есть база данных. Клиент для неё написанный на QT под Убунтой работает как часы. Возникла острая необходимость этот клиент портировать на Windows. QT – кросcплотформенный проблем быть не должно. Пол года и наконец-то я добился результата.
Почему не mingw?
Ну не смог я скомпилировать с поддержкой PGSQL
Почему не плагинами подключаю драйвер для PGSQL?
Вечная проблема. Драйвер компилируется, но не работает. 5 месяцев убил на решение этой проблемы. Пришлось найти альтернативу.
Собственно сам процесс:
Устанавливаем Visual Studio 2008.
Качаем устанавливаем PostgreSQL 8.4 желательно не очень далеко, а где-то примерно c:\pgsql\
Качаем и устанавливаем QT 4.6
Теперь нужно скомпилировать QT средствами VS2008 и тут сразу же включаем поддержку драйвера psql для PostgreSQL
Устанавливаем переменные окружения:
QTDIR=C:\Qt\4.6\qt;
QMAKESPEC=win32-msvc2008;
добавляем C:\Qt\4.6\qt\bin в Path;
За эту часть спасибо Сан Санычу:
дистрибутив версии 4.6 содержит забытые авторами временные файлы, которые приводят к ошибкам при сборке (настоящий opensource не собирается с первого раза, но зато всегда можно найти ответ на официальном сайте), поэтому нужно удалить файлы:
C:\Qt\4.6\qt\src\script\tmp\moc\debug_shared\mocinclude.tmp
C:\Qt\4.6\qt\src\script\tmp\moc\release_shared\mocinclude.tmp
C:\Qt\4.6\qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\mocinclude.tmp
C:\Qt\4.6\qt\src\3rdparty\webkit\WebCore\tmp\moc\release_shared\mocinclude.tmp
Запускаем консоль VS (Visual Studio Tools -> Командная строка Visual Studio 2008);
cd C:\Qt\4.6\qt
configure -qt-sql-psql -I c:\pgsql\include -L c:\pgsql\lib
o – (у меня опенсорс версия)
y – (я согласен с лицензией)
nmake
6-7 часов занимает на моём старичке Dell Inspiron 1300
Качаем дальше
visual-studio-add-in
устанавливаем
В Visual Studio, в Qt Options указываем версию вместе с путем к установленному Qt.
Всё готово.
Для проверки в код проекта можно вставить
qDebug() << QSqlDatabase::drivers();
Должно выдать аналог:
("QPSQL7", "QPSQL", "QSQLITE")