Привожу подробное решение проблемы, видимо с другими
sql-плагинами решается аналогично.
Речь идет о Qt-4.0.1-OpenSource-MinGW под Windows и FireBird-1.5.2
В составе FireBird-1.5.2 файлов библиотеки вида gds32*.lib - нет.
Они заменены на fbclient*.lib и имеются в двух форматах MS и Borland.
Для MinGW обе эти библиотеки НЕ ПОДХОДЯТ!
Для получения рабочей библиотеки под MinGW делаем так:1)
reimp fbclient_ms.lib2) Убираем все знаки подчеркивания `_` в начале каждой строки.
к примеру:
_BLOB_close@4 @91
_BLOB_display@16 @92
_BLOB_dump@16 @93
_isc_start_transaction
_gds__alloc@4 @1
_gds__attach_database@24 @2
заменяем на:
BLOB_close@4 @91
BLOB_display@16 @92
BLOB_dump@16 @93
isc_start_transaction
gds__alloc@4 @1
gds__attach_database@24 @2
Все строки в файле !!!
3)
dlltool -k --def fbclient.def --output-lib libfbclient.a --dllname fbclient.dllРЕЗУЛЬТАТ: Подходящая для MinGW библиотека libfbclient.aДля сборки плагина iBase для Qt делаем так:1) В директории ($QTDIR)\src\plugins\sqldrivers\ibase\ibase.pro
находим кусок типа:
win32 {
!win32-borland : LIBS *= gds32_ms.lib
win32-borland : LIBS += gds32_bor.lib
}
заменяем его на:
win32 {
LIBS *= -lfbclient
}
(***) Замечание (***)
строка `-lfbclient` означает, что будет производиться поиск
файла библиотеки `libfbclient.a`, для этого в начале указывается
`-l`, т.е. производится поиск `lib`+`fbclient`+`.a`
2)
qmake -o Makefile "INCLUDEPATH+=($FIREBIRD)\include" "LIBS+=-L($FIREBIRD)\lib" ibase.pro !) В строке LIBS+= не перепутать регистр символов в котором вводим `-L` !
именно в верхнем регистре и со знаком минус.
!) Между `-L` и ($FIREBIRD)\lib ПРОБЕЛ НЕ СТАВИТСЯ !
!) Здесь ($QTDIR) - путь к корневой директории QT, например D:\Qt-4.0.1
!) Здесь ($FIREBIRD) - путь к корневой директории FireBird, например D:\FireBird-1.5.2
РЕЗУЛЬТАТ: Собранный плагинПри статической компоновке драйвера iBase в Qt делаем так:1) В директории ($QTDIR)\src\sql\drivers\drivers.pri
находим кусок типа:
win32 {
!win32-borland : LIBS *= gds32_ms.lib
win32-borland : LIBS += gds32_bor.lib
}
заменяем его на:
win32 {
LIBS *= -lfbclient
}
2) При конфигурировании Qt указываем пути к ($FIREBIRD)\include и ($FIREBIRD)\lib
configure -qt-sql-ibase -I ($FIREBIRD)\include -L ($FIREBIRD)\lib!) Здесь ($QTDIR) - путь к корневой директории QT, например D:\Qt-4.0.1
!) Здесь ($FIREBIRD) - путь к корневой директории FireBird, например D:\FireBird-1.5.2
!) Между -I и ($FIREBIRD)\include обязательно вставляем ` ` пробел.
!) Между -L и ($FIREBIRD)\lib обязательно вставляем ` ` пробел.
РЕЗУЛЬТАТ: Статически скомпонованный драйверВот кажется и все