kharkov_max
7.11.2011, 13:40
День добрый.
Разъясните пожалуйста как реализовать следующее.
Пишу небольшой проект.
Программа использует базу данных postgresql.
Для работы с pgsql был собран драйвер для QT4 (Windows) - все работает.
Но как только я копирую проэкт на другую машину (Windows), то моя программа ругается на отсутствие подключения к базе данных.
Не хватает библиотек pgsql сервера, из каталога (к прмеру) c:\psql\bin.
Необходимо 2 файла libintl-8.dll и libpq.dll, при чем путь к данным файлам жестко прописывается при компиляции драйверов. В связи с этим на каждом новом ПК на который ставится программа приходится создавать каталог c:\psql\bin.
1. Как скомпилировать драйверы для pgsql или указать пути к библиотекам pgsql так что б я мог использовать в своем поекте каталог (к примеру lib) и скопировать в него 2 этих файла libintl-8.dll и libpq.dll ?
2. Как перенести из корня поэкта в тот же каталог lib библиотеки QtSql.dll QtGui.dll и т.д. ?
Цель сделать программу независимой от библиотек других программ к примеру pgsql-server и т.д. и как-то более менее структурировать файлы в своей программе.
Спасибо.
kharkov_max
15.11.2011, 11:23
Разве ни кто не подскажет ?
На данный момент в корень каталога своего приложения я скопировал из psql (libiconv-2.dll, libintl-8.dll, libpq.dll) а из QT mingw (libgcc_s_dw2-1.dll, mingwm10.dll, QtCored4.dll, QtGuid4.dll, QtSqld4.dll) для debug и release соответственно.
Вроде все работает даже при переносе приложения на другой ПК.
Как все же создать каталог, к примеру lib и указать моему приложению что все либы теперь лежат там ?
Гость_kharkov_max_*
15.11.2011, 12:44
Хм ...
Запустил на "чистой" машине - прога не запустилась, пришлось добавить в программу папку sqldrivers в нее кинуть файл qsqlpsql4.dll и из psql добавить в корень программы 2 dll ки libeay32.dll и ssleay32.dll.
После этого программа начала нормально запускаться и конектится в DB.
В результате имею такую картину:
- Из psql взял библиотеки (libiconv-2.dll, libintl-8.dll, libpq.dll, libeay32.dll, ssleay32.dll)
- В корень программы скопировал sqldrivers\qsqlpsql4.dll из mingw\plugins
- Ну и из mingw (libgcc_s_dw2-1.dll, mingwm10.dll, QtCored4.dll, QtGuid4.dll, QtSqld4.dll)
Вообщем вопрос - правильно ли я делаю (может нужно делать по другому)?
И как все же все dll положить в отдельную папку?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.