Пришлось по работе написать простое приложение для парсинга файла.Т.к приложение будет работать под виндами, то столкнулся с тем что при установки QtSDK и библиотек Qt, отсутствует драйвер для PostgreSQL. Пока рылся в интернете сломал мозг от тех инструкций что там написаны. Я ставил из offline sdk, в котором по умолчанию отсутствует исходники(QtSource). Поэтому запускаем SDKMaintenanceTool и доставляем исходники. Потом ставим PostgreSQL, но только 32-битный,желательно в корень чтобы не было пробелов в путях, я установил в C:\PostgreSQL, и добавляем в переменные PATH, пути к каталогам bin, lib, include. У меня пути были такие:
c:\PostgreSQL\bin\
c:\PostgreSQL\lib\
c:\PostgreSQL\include\
SDK я ставил по умолчанию в C:\QtSDK. Далее запускаем консоль, "Пуск->Все программы->QtSDK->Desktop->Qt 4.7.4 for Desktop (MinGW)", если используете MS Visual Studio, то выбираем консоль MSVC, в зависимости от используемой MS Visual Studio и версии библиотеки Qt. После запуска идём к исходникам драйвера.
cd C:\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\psql
После чего выполняем:
mingw32-make install clean -f Makefile.Debug
mingw32-make install clean -f Makefile.Release
После чего создаём простое консольное приложение и смотрим список появившихся драйверов:
#include <QtSql>
Вот и всё. Приятной работы. :)
c:\PostgreSQL\bin\
c:\PostgreSQL\lib\
c:\PostgreSQL\include\
SDK я ставил по умолчанию в C:\QtSDK. Далее запускаем консоль, "Пуск->Все программы->QtSDK->Desktop->Qt 4.7.4 for Desktop (MinGW)", если используете MS Visual Studio, то выбираем консоль MSVC, в зависимости от используемой MS Visual Studio и версии библиотеки Qt. После запуска идём к исходникам драйвера.
cd C:\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\psql
Примечание: у меня библиотека версии 4.7.4, если Вы используете другую версию библиотеки, то должны компилировать драйвер для своей версии.
Далее выполняем:
qmake -o Makefile "INCLUDEPATH+=c:\\PostgreSQL\\include" "LIBS+=c:\\PostgreSQL\\lib\\libpq.lib" psql.proПосле чего выполняем:
mingw32-make install clean -f Makefile.Debug
mingw32-make install clean -f Makefile.Release
После чего создаём простое консольное приложение и смотрим список появившихся драйверов:
#include <QtSql>
#include <QtCore/QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << QSqlDatabase::drivers();
return a.exec();
}
Вывод должен быть примерно таким
... и не забываем про длл от PSQL чтоб скомпилированное приложение работало на другом компьютере. :-)
ОтветитьУдалить