- PVSM.RU - https://www.pvsm.ru -
Небольшое лирическое отступление:
Написать эту заметку меня сподвигло наличие в интернете огромного количества инструкций которые просто цитируют документацию, а реально не работают. Т.к. я работаю с Qt время от времени, то не знаю как обстоят дела с данной проблемой в Qt5.
В установку по умолчанию (по крайней мере для версии 4.8.4) драйвер для работы с Postgres не входит.
Официальная документация предлагает собирать его очень простым способом http://qt-project.org/doc/qt-4.8/sql-driver.html#qpsql [1], но если вы скачивали уже собранное Qt, то будете изрядно озадачены тем, что сборка проходит без ошибок, но ничего не работает.
Здесь следует слегка углубиться в особенности работы с sql-драйверами в Qt. Возможно два варианта их реализации:
При сборке Qt(http://doc.qt.digia.com/4.7/configure-options.html [2]) за это отвечают следующие опции
Посмотреть какие драйверы в вашей инсталляции собраны как plugin'ы можно вот по этому пути:
%QTDIR%pluginssqldrivers
А теперь переходим к сути проблемы и её простому решению.
Насколько я понимаю, по-умолчанию, SQL драйверы собираются статически, т.е. для линковки с QtSql. Поэтому в результате сборки по документации у нас получаются только *.а файлы, которые к существующей QtSql4.dll ну никак не прицепишь. Выход который часто встречается в сети — пересобрать Qt целиком включив нужные драйверы при конфигурации. В принципе вариант нормальный, но вот только очень долгий.
Естественно мы можем вручную поправить make-файлы и собрать нужный драйвер как plugin, но это занятие неблагодарное — пусть компьютер делает это за нас.
Далее предполагается, что PostgreSQL с нужными библиотеками и заголовочными файлами установлен в C:psql (я обычно ставлю его в Program Files, а C:psql это junction).
Ну а дальше всё быстро и просто:
configure -I "c:psqlinclude" -L "c:psqllib" -plugin-sql-psqlcd srcpluginssqldriverspsqlqmake psql.promake debugmake releaseПроверяем %QTDIR%pluginssqldrivers. Бинго!
Автор: magnitudo
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/29697
Ссылки в тексте:
[1] http://qt-project.org/doc/qt-4.8/sql-driver.html#qpsql: http://qt-project.org/doc/qt-4.8/sql-driver.html#qpsql
[2] http://doc.qt.digia.com/4.7/configure-options.html: http://doc.qt.digia.com/4.7/configure-options.html
[3] Источник: http://habrahabr.ru/post/173283/
Нажмите здесь для печати.