PDA

View Full Version : Problems trying to compile driver firebird



estanisgeyer
12th February 2008, 13:00
Good Day,
I'm having trouble compiling the driver to firebird on the qt 4.3.3, plataform MS Windows (XP).
Firebird is instaled in C:\Firebird directory.

Then what is happening:


Setting up a MinGW/Qt only environment...
-- QTDIR set to C:\Qt\4.3.3
-- PATH set to C:\Qt\4.3.3\bin
-- Adding C:\MinGW\bin to PATH
-- Adding C:\WINDOWS\System32 to PATH
-- QMAKESPEC set to win32-g++

C:\Qt\4.3.3>cd src/plugins/sqldrivers/ibase

C:\Qt\4.3.3\src\plugins\sqldrivers\ibase>qmake -o Makefile "INCLUDEPATH+=C:\Firebird\include" "LIBRARYPATH+=C:\Firebird\bin" "LIBS+=-lfbclient" ibase.pro

C:\Qt\4.3.3\src\plugins\sqldrivers\ibase>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/4.3.3/src/plugins/sqldrivers/ibase'
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN
-DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\432A9D~1.3\include\QtCo
re" -I"c:\Qt\432A9D~1.3\include\QtCore" -I"c:\Qt\432A9D~1.3\include\QtSql" -I"c:
\Qt\432A9D~1.3\include\QtSql" -I"c:\Qt\432A9D~1.3\include" -I"c:\Firebird\includ
e" -I"c:\Firebird\include" -I"c:\Qt\432A9D~1.3\include\ActiveQt" -I"tmp\moc\rele
ase_shared" -I"." -I"c:\Qt\432A9D~1.3\mkspecs\win32-g++" -o tmp\obj\release_shar
ed\main.o main.cpp
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN
-DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"c:\Qt\432A9D~1.3\include\QtCo
re" -I"c:\Qt\432A9D~1.3\include\QtCore" -I"c:\Qt\432A9D~1.3\include\QtSql" -I"c:
\Qt\432A9D~1.3\include\QtSql" -I"c:\Qt\432A9D~1.3\include" -I"c:\Firebird\includ
e" -I"c:\Firebird\include" -I"c:\Qt\432A9D~1.3\include\ActiveQt" -I"tmp\moc\rele
ase_shared" -I"." -I"c:\Qt\432A9D~1.3\mkspecs\win32-g++" -o tmp\obj\release_shar
ed\qsql_ibase.o ..\..\..\sql\drivers\ibase\qsql_ibase.cpp
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function `virtual int QIBas
eResult::numRowsAffected()':
..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1184: warning: 'cCountType' might be u
sed uninitialized in this function
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\432A9D~1.3\plugins\sqldri
vers\libqsqlibase4.a -o c:\Qt\432A9D~1.3\plugins\sqldrivers\qsqlibase4.dll tmp/o
bj/release_shared/main.o tmp/obj/release_shared/qsql_ibase.o -L"c:\Qt\432A9D~1.
3\lib" -L"c:\Qt\432A9D~1.3\lib" tmp\obj\release_shared\qsqlibase_resource_res.o
-LC:\Firebird\lib -lfbclient -lfbclient -lQtSql4 -lQtCore4
Creating library file: c:\Qt\432A9D~1.3\plugins\sqldrivers\libqsqlibase4. a
tmp/obj/release_shared/qsql_ibase.o(.text+0xb7):qsql_ibase.cpp: undefined refere
nce to `isc_sqlcode@4'
tmp/obj/release_shared/qsql_ibase.o(.text+0xd9):qsql_ibase.cpp: undefined refere
nce to `isc_sql_interprete@12'
tmp/obj/release_shared/qsql_ibase.o(.text+0xb03):qsql_ibase.cpp: undefined refer
ence to `isc_create_blob2@28'
tmp/obj/release_shared/qsql_ibase.o(.text+0xc02):qsql_ibase.cpp: undefined refer
ence to `isc_put_segment@16'
tmp/obj/release_shared/qsql_ibase.o(.text+0xef7):qsql_ibase.cpp: undefined refer
ence to `isc_close_blob@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x10e2):qsql_ibase.cpp: undefined refe
rence to `isc_open_blob2@28'
tmp/obj/release_shared/qsql_ibase.o(.text+0x14f9):qsql_ibase.cpp: undefined refe
rence to `isc_get_segment@20'
tmp/obj/release_shared/qsql_ibase.o(.text+0x159b):qsql_ibase.cpp: undefined refe
rence to `isc_close_blob@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x1b56):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_sql_info@24'
tmp/obj/release_shared/qsql_ibase.o(.text+0x1dd9):qsql_ibase.cpp: undefined refe
rence to `isc_vax_integer@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x1dec):qsql_ibase.cpp: undefined refe
rence to `isc_vax_integer@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x21a5):qsql_ibase.cpp: undefined refe
rence to `isc_commit_transaction@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2427):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_free_statement@12'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2a48):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_allocate_statement@12'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2b61):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_prepare@28'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2c72):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_describe_bind@16'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2d79):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_describe_bind@16'
tmp/obj/release_shared/qsql_ibase.o(.text+0x2e91):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_describe@16'
tmp/obj/release_shared/qsql_ibase.o(.text+0x37f2):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_sql_info@24'
tmp/obj/release_shared/qsql_ibase.o(.text+0x38e3):qsql_ibase.cpp: undefined refe
rence to `isc_vax_integer@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x3906):qsql_ibase.cpp: undefined refe
rence to `isc_vax_integer@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x4414):qsql_ibase.cpp: undefined refe
rence to `isc_detach_database@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x48d8):qsql_ibase.cpp: undefined refe
rence to `isc_commit_transaction@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x4bd8):qsql_ibase.cpp: undefined refe
rence to `isc_rollback_transaction@8'
tmp/obj/release_shared/qsql_ibase.o(.text+0x91bf):qsql_ibase.cpp: undefined refe
rence to `isc_attach_database@24'
tmp/obj/release_shared/qsql_ibase.o(.text+0xb30d):qsql_ibase.cpp: undefined refe
rence to `isc_array_lookup_bounds@24'
tmp/obj/release_shared/qsql_ibase.o(.text+0xb96e):qsql_ibase.cpp: undefined refe
rence to `isc_array_get_slice@28'
tmp/obj/release_shared/qsql_ibase.o(.text+0xcbf4):qsql_ibase.cpp: undefined refe
rence to `isc_array_lookup_bounds@24'
tmp/obj/release_shared/qsql_ibase.o(.text+0xd8a0):qsql_ibase.cpp: undefined refe
rence to `isc_array_put_slice@28'
tmp/obj/release_shared/qsql_ibase.o(.text+0xdbc8):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_fetch@16'
tmp/obj/release_shared/qsql_ibase.o(.text+0xf1f5):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_execute@20'
tmp/obj/release_shared/qsql_ibase.o(.text+0xf70e):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_free_statement@12'
tmp/obj/release_shared/qsql_ibase.o(.text+0xf914):qsql_ibase.cpp: undefined refe
rence to `isc_dsql_execute2@24'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [c:\Qt\432A9D~1.3\plugins\sqldrivers\qsqlibase4.dll] Error
1
mingw32-make[1]: Leaving directory `C:/Qt/4.3.3/src/plugins/sqldrivers/ibase'
mingw32-make: *** [release] Error 2

What's the problems?

Thanks,

Marcelo E. Geyer

jpn
15th February 2008, 23:01
qmake -o Makefile "INCLUDEPATH+=C:\Firebird\include" "LIBRARYPATH+=C:\Firebird\bin" "LIBS+=-lfbclient" ibase.pro

What is LIBRARYPATH? How about something like:

qmake -o Makefile "INCLUDEPATH+=C:\Firebird\include" "LIBS+=-LC:\Firebird\bin -lfbclient" ibase.pro
?

nothinkjas
19th July 2011, 14:35
hello, j'ai réussi a compilé le plugin de firebird avec qt 4.7 voila ce que j'ai fait:
1- modifier le main.pro de ibase.pro (dossier sqldrivers) en modifiant cette ligne !win32-borland:LIBS *= -lfbclient (avant !win32-borland:LIBS *= -lgds32_ms)
2-télécharger mingw-utils-0.3 à l'adresse :
http://sourceforge.net/projects/mingw/f … z/download
- le décompresser
- copier reimp.exe et dlltool.exe dans le répertoire lib de firebird

2-ouvrir le qt prompt
3-reimp fbclient_ms.lib
4-dlltool -k -d fbclient.def -l libfbclient.a -D libfbclient.dlltol
5-se mettre dans le répertoire c:\Qt\2010.05\qt\src\plugins\sqldrivers\ibase
6-qmake "INCLUDEPATH+=c:/firebird/include" "LIBS+=c:/firebird/lib/libfbclient.a" ibase.pro
7-mingw32-make
le résultat dans le répertoire C:\Qt\2010.05\qt\plugins\sqldrivers on trouve :qsqlibased4.dll qsqlibase4.dll
j’espère que ça servira a quel q'un .

j'ai failli oublié le truk le plus important juste après le reimp qui génère le fichier fbclient.def il faut ouvrir le fichier supprimer tout les _ devant les variables et enregistrer puis exécuter le reste des commandes.
voila!!!!

high_flyer
19th July 2011, 15:22
This is an English speaking forum, its against the rules to post in other languages.
Further such posts will be deleted, to you attention!