Название: Сборка QIBASE
Отправлено: cooler_3105 от Март 11, 2009, 12:12
Не удается собрать плагин QIBASE под винду. Использую Firebird Выполняю cd %QTDIR%\src\plugins\sqldrivers\ibase qmake -o Makefile "INCLUDEPATH+=C:\Program Files\Firebird\Firebird_2_1\include" "LIBS+=-lC:\Program Files\Firebird|Firebird_2_1\lib\fbclient_ms" ibase.pro make
На что компилятор мне выдает: mingw32-make -f Makefile.Debug all mingw32-make[1]: Entering directory `C:/Qt/4.3.0/src/plugins/sqldrivers/ibase' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\4.3.0\plugins\sqldrivers\libqsqlibased4.a -o "..\..\..\..\plugins\sqldrivers\qsqlibased4.dll" tmp\obj\debug_shared\main.o tmp\obj\debug_shared\qsql_ibase.o -L"c:\Qt\4.3.0\lib" -L"c:\Qt\4.3.0\lib" tmp\obj\debug_shared\qsqlibased_resource_res.o -lc:\Program Files\Firebird\Firebird_2_1\lib\fbclient_ms -lQtSqld4 -lQtCored4 g++: Files\Firebird\Firebird_2_1\lib\fbclient_ms: No such file or directory mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlibased4.dll] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/4.3.0/src/plugins/sqldrivers/ibase' mingw32-make[1]: *** [debug-all] Error 2
Подскажите что не так делаю? fbclient_ms.lib преспокойненько лежит в C:\Program Files\Firebird\Firebird_2_1\lib
Название: Re: Сборка QIBASE
Отправлено: Пантер от Март 11, 2009, 12:41
Читаем Вики: http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0_Firebird_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC_MinGW_32. (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D0%B0_Firebird_%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC_MinGW_32.)
Название: Re: Сборка QIBASE
Отправлено: ax от Март 11, 2009, 13:13
Посмотри на http://code.google.com/p/qtfirebirdibppsqldriver/ (http://code.google.com/p/qtfirebirdibppsqldriver/)
Название: Re: Сборка QIBASE
Отправлено: cooler_3105 от Март 11, 2009, 13:58
panter_dsd, ну как-то неразумно ради сборки одного плагина заново конфигурировать qt. Лучше наверное вручную его собрать. Плагин, как мне кажется, я собрал: в папке plugins\sqldrivers появились qsqlibase4.dll, qsqlibased4.dll. Но при компиляции программы все равно возникает Запуск... QSqlDatabase: QIBASE driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
Cannot open database: QSqlError(-1, "Driver not loaded", "Driver not loaded")
---------------------- Нормальное завершение ----------------------
Подскажите что не так...
Название: Re: Сборка QIBASE
Отправлено: lit-uriy от Март 11, 2009, 15:03
я какое-то время не мог, собрать, посему все действия записывал и вот так получилось: переименовываем fbclient_ms.lib в fbclient.lib
cd %QTDIR%\src\plugins\sqldrivers\ibase qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_0\include" "LIBS+=F:\Firebird\Firebird_2_0\lib\fbclient.lib" ibase.pro
Название: Re: Сборка QIBASE
Отправлено: break от Март 11, 2009, 15:04
Была проблема при сборке драйвера ibase для firebird под линукс, под винду еще не пробовал 0- предстоит Для решения изменили pro файл ibase.pro TARGET = qsqlibase
HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h SOURCES = main.cpp \ ../../../sql/drivers/ibase/qsql_ibase.cpp
unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS *= -lfbclient
win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) { !win32-borland:LIBS *= -lgds32_ms win32-borland:LIBS += gds32.lib }
include(../qsqldriverbase.pri)
Название: Re: Сборка QIBASE
Отправлено: pastor от Март 11, 2009, 15:22
Плагин, как мне кажется, я собрал: в папке plugins\sqldrivers появились qsqlibase4.dll, qsqlibased4.dll. Но при компиляции программы все равно возникает QSqlDatabase: QIBASE driver not loaded
Выполни поиск по форуму на предмет "driver not loaded"
Название: Re: Сборка QIBASE
Отправлено: kirill от Март 12, 2009, 06:52
установи firebird в папку без пробелов и не парься
Название: Re: Сборка QIBASE
Отправлено: fe328 от Апрель 17, 2010, 23:38
Ребят! помогите, плиз, ламмеру! Вроде все делаю по инструкции, но результат отвратный.... Qt 2010.02.01 , IB 5.6 D:\qt\qt\src\plugins\sqldrivers\ibase>cd %QTDIR%\src\plugins\sqldrivers\ibase D:\qt\qt\src\plugins\sqldrivers\ibase>qmake "INCLUDEPATH+=C:\ib\include" ibase.pro D:\qt\qt\src\plugins\sqldrivers\ibase>nmake
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
NMAKE -f Makefile.Debug all
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"c:\ib\include" -I"..\..\..\..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"..\..\..\..\mkspecs\win32-g++" -o tmp\obj\debug_shared\qsql_ibase.o ..\..\..\sql\drivers\ibase\qsql_ibase.cpp
..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'void initDA(XSQLDA*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:122: error: 'SQL_INT64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:127: error: 'SQL_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:128: error: 'SQL_TYPE_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:129: error: 'SQL_TYPE_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QVariant::Type qIBaseTypeName(int, bool)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:176: error: 'blr_sql_time' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:178: error: 'blr_sql_date' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:180: error: 'blr_timestamp' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:188: error: 'blr_int64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QVariant::Type qIBaseTypeName2(int, bool)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:208: error: 'SQL_INT64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:213: error: 'SQL_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:215: error: 'SQL_TYPE_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:217: error: 'SQL_TYPE_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope: ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:228: error: 'ISC_TIMESTAMP' does not name a type ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QDateTime fromTimeStamp(char*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:246: error: 'ISC_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:246: error: expected primary-expression before 'int' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:247: error: expected primary-expression before 'int' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope: ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:252: error: 'ISC_TIME' does not name a type ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QTime fromTime(char*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:263: error: 'ISC_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:263: error: expected primary-expression before 'int' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: At global scope: ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:268: error: 'ISC_DATE' does not name a type ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'QDate fromDate(char*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:284: error: 'ISC_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:284: error: expected primary-expression before 'int' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'char* readArrayBuffer(QList<QVariant>&, char*, short int, short int*, ISC_ARRAY_DESC*, QTextCodec*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:535: error: 'blr_int64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:544: error: 'blr_timestamp' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:547: error: 'ISC_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:550: error: 'blr_sql_time' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:553: error: 'ISC_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:556: error: 'blr_sql_date' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:559: error: 'ISC_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In function 'char* createArrayBuffer(char*, const QList<QVariant>&, QVariant::Type, short int, ISC_ARRAY_DESC*, QString&, QTextCodec*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: 'ISC_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:736: error: expected ')' before 'buffer' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: 'ISC_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:742: error: expected ')' before 'buffer' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: 'ISC_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:749: error: expected ')' before 'buffer' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::prepare(const QString&)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:910: error: 'SQL_DIALECT_V6' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::exec()': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:997: error: 'SQL_INT64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1024: error: 'SQL_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: 'ISC_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1025: error: expected ')' before 'd' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1027: error: 'SQL_TYPE_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: 'ISC_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1028: error: expected ')' before 'd' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1030: error: 'SQL_TYPE_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: 'ISC_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: expected primary-expression before ')' token ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1031: error: expected ')' before 'd' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1061: error: 'SQL_DIALECT_V6' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1063: error: 'SQL_DIALECT_V6' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'virtual bool QIBaseResult::gotoNext(QVector<QVariant>&, int)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1102: error: 'SQL_DIALECT_V6' was notdeclared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1127: warning: enumeration value 'LowPrecisionDouble' not handled in switch ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1151: error: 'SQL_INT64' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1178: error: 'SQL_TIMESTAMP' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1181: error: 'SQL_TYPE_TIME' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1184: error: 'SQL_TYPE_DATE' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp: In member function 'void QIBaseDriver::qHandleEventNotification(void*)': ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1843: error: 'ISC_ULONG' was not declared in this scope ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1843: error: expected ';' before 'counts' ..\..\..\sql\drivers\ibase\qsql_ibase.cpp:1844: error: 'counts' was not declared in this scope NMAKE : fatal error U1077: 'g++' : return code '0x1' Stop. NMAKE : fatal error U1077: 'C:\WINDOWS\System32\NMAKE.EXE' : return code '0x2' Stop.
Название: Re: Сборка QIBASE
Отправлено: crossly от Апрель 20, 2010, 10:13
каким компилятором собираете ??.... LIBS прописано не правильно у вас...
Название: Re: Сборка QIBASE
Отправлено: lit-uriy от Апрель 20, 2010, 10:21
>>каким компилятором собираете ??. коль скоро используется nmake, то видимо студийным
Название: Re: Сборка QIBASE
Отправлено: lit-uriy от Апрель 20, 2010, 10:24
Я так собирал для FireBird'а и MinGW32: переименовываем fbclient_ms.lib в fbclient.lib cd %QTDIR%\src\plugins\sqldrivers\ibase qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_1\include" "LIBS+=F:\Firebird\Firebird_2_1\lib\fbclient_ms.lib" make
П.С. все пути без пробелов, иначе придётся дополнительно в такие штуки заворачивать: \"
Название: Re: Сборка QIBASE
Отправлено: crossly от Апрель 20, 2010, 10:42
сори.... просто автор топика собирал mingw .... там не корректно указан LIBS .... по поводу второго... да ... не видит инклюдов
Название: Re: Сборка QIBASE
Отправлено: vaychick от Май 02, 2011, 10:52
Тоже долго парился, помогло то, что написоно в вики НО INCLUDEPATH и LIBS нужно ставить вне блока win32 drivers.pri contains(sql-drivers, ibase) { HEADERS += drivers/ibase/qsql_ibase.h SOURCES += drivers/ibase/qsql_ibase.cpp INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include" LIBS += "C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib" unix:LIBS *= -lgds win32 { !win32-borland:LIBS *= -lfbclient_ms win32-borland:LIBS += fbclient_ms.lib } } ibase.pro TARGET = qsqlibase
HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h SOURCES = main.cpp \ ../../../sql/drivers/ibase/qsql_ibase.cpp INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include" LIBS += "C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"
unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS *= -lgds
win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
!win32-borland:LIBS *= -lfbclient_ms win32-borland:LIBS += fbclient_ms.lib }
include(../qsqldriverbase.pri) иначе будет писать, что не может найти -lfbclient_ms
Название: Re: Сборка QIBASE
Отправлено: vaychick от Июнь 27, 2011, 09:03
Продолжаем тему, вышел новый Qt 4.7.3, для которого тоже нужно собрать QIBASE. Исходники, к новому Qt в комплекте не идут, скачивал отдельно. ibase.pro TARGET = qsqlibase
SOURCES = main.cpp
INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include" "C:/QtSDK/Desktop/Qt/4.7.3/mingw/lib"
LIBS += -L"C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"
include(../../../sql/drivers/ibase/qsql_ibase.pri)
include(../qsqldriverbase.pri)
sql\drivers\ibase\qsql_ibase.pri HEADERS += $$PWD/qsql_ibase.h SOURCES += $$PWD/qsql_ibase.cpp
unix { !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lgds } else { !contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) { win32-borland:LIBS += gds32.lib else:LIBS += -lgds32_ms } } вывод: C:\QtSDK\src\src\plugins\sqldrivers\ibase>make make -f Makefile.Debug all make[1]: Entering directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -mthreads -Wl -shared -Wl,--out-implib,c:/QtSDK/src/plugins/sqldrivers/libqsq libased4.a -o ../../../../plugins/sqldrivers/qsqlibased4.dll tmp/obj/debug_share d/main.o tmp/obj/debug_shared/qsql_ibase.o tmp/obj/debug_shared/moc_qsql_ibase.o -L'c:/QtSDK/src/lib' -L'c:/QtSDK/src/lib' tmp/obj/debug_shared/qsqlibased_reso urce_res.o "-LC:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib" -lQtSq ld4 -lQtCored4 c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cann ot find -lQtSqld4 collect2: ld returned 1 exit status make[1]: *** [../../../../plugins/sqldrivers/qsqlibased4.dll] Error 1 make[1]: Leaving directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase' make: *** [debug-all] Error 2
cannot find -lQtSqld4, хотя: C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib - libQtSql4.a есть Раньше ругался на fbclient, но я его положил в папку ibase, теперь не может найти отладочную библиотеку, хотя в путях, у него прописано: Вопрос, как прописать в конфиге, где искать QtSqld4?
Название: Re: Сборка QIBASE
Отправлено: Пантер от Июнь 27, 2011, 09:20
Требуетl QtSqld4, а есть только libQtSql4. То есть сборка Qt у тебя релизная, а драйвер пытаешься дебажный собрать.
Название: Re: Сборка QIBASE
Отправлено: vaychick от Июнь 27, 2011, 09:36
Требуетl QtSqld4, а есть только libQtSql4. Может я ошибся, когда набирал текст, но в C:\QtSDK\Desktop\Qt\4.7.3\mingw\lib есть и libQtSqld4.a 320 КБ весит. То есть сборка Qt у тебя релизная, а драйвер пытаешься дебажный собрать.
C:\QtSDK\src\src\plugins\sqldrivers\ibase>qmake
C:\QtSDK\src\src\plugins\sqldrivers\ibase>make release
сначало писал, что не может найти в C:\QtSDK\src\bin moc.exe я не знал как ему показать, что moc лежит сдесь C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin и скопировал его в C:\QtSDK\src\bin. C:\QtSDK\src\src\plugins\sqldrivers\ibase>qmake
C:\QtSDK\src\src\plugins\sqldrivers\ibase>make release make -f Makefile.Release make[1]: Entering directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:/QtSDK/src/plugins/sqldrivers /libqsqlibase4.a -o ../../../../plugins/sqldrivers/qsqlibase4.dll tmp/obj/releas e_shared/main.o tmp/obj/release_shared/qsql_ibase.o tmp/obj/release_shared/moc_q sql_ibase.o -L'c:/QtSDK/src/lib' -L'c:/QtSDK/src/lib' tmp/obj/release_shared/qs qlibase_resource_res.o "-LC:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms .lib" -lQtSql4 -lQtCore4 c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cann ot find -lQtSql4 collect2: ld returned 1 exit status make[1]: *** [../../../../plugins/sqldrivers/qsqlibase4.dll] Error 1 make[1]: Leaving directory `C:/QtSDK/src/src/plugins/sqldrivers/ibase' make: *** [release] Error 2
ld.exe: cannot find -lQtSql4 может из-за того, что я moc скопировал в другую дирректорию? Windows path: C:\Program Files\Firebird\Firebird_2_0\bin;C:\QtSDK\mingw\bin;C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin
Название: Re: Сборка QIBASE
Отправлено: vaychick от Июль 29, 2011, 11:42
С подсказки коллеги по работе решение нашлось, правда я собирал на виртуальной машине, чтобы отбросить все сторонние факторы. Вот ibase.pro TARGET = qsqlibase
SOURCES = main.cpp INCLUDEPATH += "C:/Program Files/Firebird/Firebird_2_0/include" C:/tmp/src/include LIBS += "C:/Program Files/Firebird/Firebird_2_0/lib/fbclient_ms.lib"
include(../../../sql/drivers/ibase/qsql_ibase.pri)
include(../qsqldriverbase.pri) Неочевидное (для меня по крайней мере) решение проблемы оказалось вот в чем: 1. не нужно копировать файлы с исходниками в папку SDK в директорию src (где они лежади в предыдущих версиях) 2. В .pro файле нужно указать путь к заголовочным файлам внутри самих исходников, хотя .pro файл ibase находится в этой-же директории, просто на несколько уровней ниже и я логично предполагал, что внутри прописаны относительные пути вверх по иерархии до include файлов. 3. На форуме подсказали собирать через Creator P.S. кроме ibase.pro ничего не менял и не трогал.
Название: Re: Сборка QIBASE
Отправлено: optimistex от Декабрь 21, 2011, 08:53
Тоже много времени потратил на сборку драйвера. Удалось собрать и заставить работать на Qt SDK 4.8.0. Так же сделал *.BAT-ник автоматизирующий сборку плагина QIBASE и его установку. Подробности тут: http://optitrex.ru/pages/615_qt_-_sborka_drayvera_qibase (http://optitrex.ru/pages/615_qt_-_sborka_drayvera_qibase)
|