Russian Qt Forum
Ноябрь 23, 2024, 20:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt4.5] QPSQL "driver not loaded"  (Прочитано 9639 раз)
Khs
Гость
« : Март 06, 2009, 09:35 »

Всем привет!

Вообщем решил заюзать PostgreSQL + Qt и столкнулся с бедой, одноименной с названием топика (при попытке запуска приложения) Улыбающийся

Что в инете, что на форумах, куча инфы по етому вопросу, но там решение проблемы в основном сводится к тому, что необходимо кинуть собранную либу qsqlpsql4.dll и либу из psql\bin libpq.dll в директорию sqldrivers на уровне с экзешником. В моем случае это не помогло.

Зато когда я кинул либы как описано тут (хотя там и другая версия Qt, но думаю не суть)
http://qtwiki.org/QPSQL_driver_not_loaded_-_unusual_solution
то приложение нормально запускается. Но не понятно, как другие решали данную проблему копированием только 2х либ в папку. Да и как-то жестоко таскать стока либ как описано в ссылке.

Стоит PostrgeSQL 8.3, QT SDK (4.5 естесна), WinXP.

Драйвер psql для Qt собирал так:
зашел в \qt\src\plugins\sqldrivers\psql, открыл psql.pro в QtCreator и там скомпилил (извращение конечно, сначала попробовал как в Ассистенте через nmake, но че-то он не захотел фурычить).

Содержание psql.pro:

Код:
TARGET    = qsqlpsql

HEADERS      = ../../../sql/drivers/psql/qsql_psql.h
SOURCES      = main.cpp \
        ../../../sql/drivers/psql/qsql_psql.cpp

INCLUDEPATH += "C:\psql\include"
LIBS += "C:\psql\lib\libpq.lib"

win32:!contains(LIBS, .*pq.* ) {
    !win32-g++:LIBS    *= -llibpq       
    win32-g++:LIBS *= -lpq   
    LIBS    *= -lws2_32 -ladvapi32
}

include(../qsqldriverbase.pri)

В итоге получил собранную с помощью QtCreator либу qsqlpsql4.dll.
Записан
BaltikS
Гость
« Ответ #1 : Март 06, 2009, 10:50 »

Я так понимаю просто libpq тянет зависимости вот от этого списка ДЛЛ. Как избавиться? Я избавлялся просто: компилил дрова с зависимостями.... А потом просто подменял libpq без зависимостей... Где его взять? Скомпилить самому или например где нибудь нарыть, например в EMS SQL MANAGER.... Я пошёл по первому пути, т.е. компилил LibPq  из исходников и из него же собирал драйвера Qt.
Записан
_OLEGator_
Гость
« Ответ #2 : Март 06, 2009, 19:08 »

Можно попробовать собрать драйвер статически, добавив в psql.pro:

GONFIG =+ STATIC

Насколько я помню, на работе эту проблему решали так...
Записан
BaltikS
Гость
« Ответ #3 : Март 07, 2009, 12:25 »

Собрать то можно, только зависимость от libpq останется
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 20.