Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Август 17, 2016, 15:13



Название: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 15:13
Пытаюсь собрать
В 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_3_0/include

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
        #!win32-borland:LIBS *= -lgds32_ms
        #win32-borland:LIBS  += gds32.lib

        LIBS += -lfbclient_ms
        LIBS += -L C:/Program Files/Firebird/Firebird_3_0/lib

        }

include(../qsqldriverbase.pri)

fbclient_ms скопил и кинул в папку к ibase.pro

При сборке выдается ошибка
Код:
ibase.h: No such file or directory

Путь к хедеру прописывал в path, но не помогло. :(

Скажите, что делаю не так ???


Название: Re: SQL-плагин + подключение iBase
Отправлено: Bepec от Август 17, 2016, 15:36
Хедер то он в креаторе видит, или нет?


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 15:43
Хедер то он в креаторе видит, или нет?

нет
прописал в pro и в path

 ???


Название: Re: SQL-плагин + подключение iBase
Отправлено: Old от Август 17, 2016, 15:46
Попробуйте пути брать в кавычки, они у вас с пробелами.


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 16:05
Попробуйте пути брать в кавычки, они у вас с пробелами.

Помогло, только теперь выводит ошибки

Код:
c:/qtsdk/2010.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: C:/Program Files/Firebird/Firebird_3_0/lib/fbclient_ms.lib(fbclient.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive

c:/qtsdk/2010.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: C:/Program Files/Firebird/Firebird_3_0/lib/fbclient_ms.lib(fbclient.dll): Recognised but unhandled machine type (0x8664) in Import Library Format archive


tmp/obj/debug_shared/qsql_ibase.o: In function `getIBaseError':


C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:80: undefined reference to `isc_sqlcode@4'

C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:83: undefined reference to `fb_interpret@12'


tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:406: undefined reference to `isc_dsql_free_statement@12'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:421: undefined reference to `isc_create_blob2@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:427: undefined reference to `isc_put_segment@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:433: undefined reference to `isc_close_blob@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:441: undefined reference to `isc_open_blob2@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:451: undefined reference to `isc_get_segment@20'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:462: undefined reference to `isc_close_blob@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:582: undefined reference to `isc_array_lookup_bounds@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:614: undefined reference to `isc_array_get_slice@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:769: undefined reference to `isc_array_lookup_bounds@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:815: undefined reference to `isc_array_put_slice@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:824: undefined reference to `isc_dsql_sql_info@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:828: undefined reference to `isc_vax_integer@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:829: undefined reference to `isc_vax_integer@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:844: undefined reference to `isc_start_transaction'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:862: undefined reference to `isc_commit_transaction@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:905: undefined reference to `isc_dsql_allocate_statement@12'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:910: undefined reference to `isc_dsql_prepare@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:915: undefined reference to `isc_dsql_describe_bind@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:926: undefined reference to `isc_dsql_describe_bind@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:940: undefined reference to `isc_dsql_describe@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1055: undefined reference to `isc_dsql_free_statement@12'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1061: undefined reference to `isc_dsql_execute2@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1063: undefined reference to `isc_dsql_execute@20'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1102: undefined reference to `isc_dsql_fetch@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1306: undefined reference to `isc_dsql_sql_info@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1312: undefined reference to `isc_vax_integer@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1314: undefined reference to `isc_vax_integer@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1490: undefined reference to `isc_attach_database@24'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1511: undefined reference to `isc_cancel_events@12'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1525: undefined reference to `isc_detach_database@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1544: undefined reference to `isc_start_transaction'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1556: undefined reference to `isc_commit_transaction@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1569: undefined reference to `isc_rollback_transaction@8'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1770: undefined reference to `isc_event_block'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1789: undefined reference to `isc_que_events@28'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1817: undefined reference to `isc_cancel_events@12'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1845: undefined reference to `isc_event_counts@16'

tmp/obj/debug_shared/qsql_ibase.o:C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:1864: undefined reference to `isc_que_events@28'

collect2: ld returned 1 exit status

Я так понимаю ему либа fbclient_ms.lib не нравиться  ???


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 16:25
Заменил LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/fbclient.dll " вместо #LIBS += -lfbclient_ms
на либы вроде не жалуется
Код:
TARGET	 = qsqlibase

HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES = main.cpp \
 ../../../sql/drivers/ibase/qsql_ibase.cpp

INCLUDEPATH += "C:/Program Files/Firebird/Firebird_3_0/include"

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
        #!win32-borland:LIBS *= -lgds32_ms
        #win32-borland:LIBS  += gds32.lib

        LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/fbclient.dll " #LIBS += -lfbclient_ms
        LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/lib"
        }
include(../qsqldriverbase.pri)

НО при компиляции

Пишет ошибку
Код:
C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:80: undefined reference to `isc_sqlcode@4'

C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:83: undefined reference to `fb_interpret@12''

эти функции есть в ibase.h
isc_sqlcode(...)
fb_interpret(...)

Не могу понять, что делать???


Название: Re: SQL-плагин + подключение iBase
Отправлено: Bepec от Август 17, 2016, 17:26
попробуйте вместо
../../../sql/drivers/ibase/qsql_ibase.cpp
поставить просто qsql_ibase.cpp, а каталог добавить в include path.


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 17:47
попробуйте вместо
../../../sql/drivers/ibase/qsql_ibase.cpp
поставить просто qsql_ibase.cpp, а каталог добавить в include path.
Код:
TARGET	 = qsqlibase

HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES = main.cpp \
                           qsql_ibase.cpp
#  ../../../sql/drivers/ibase/qsql_ibase.cpp

INCLUDEPATH += "C:/Program Files/Firebird/Firebird_3_0/include"
INCLUDEPATH += "C:/QtSDK/2010.05/qt/src/drivers/ibase/"

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
        #!win32-borland:LIBS *= -lgds32_ms
        #win32-borland:LIBS  += gds32.lib

        LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/fbclient.dll " #LIBS += -lfbclient_ms      
        }
include(../qsqldriverbase.pri)
Если правильно Вас понял???
Не помогло :(


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 17, 2016, 18:58
LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/fbclient.dll

путь к ПАПКЕ с либой точно так зовется?
и где LIBS += -l... ?


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 17, 2016, 20:29
Установил FireBird соответственно оттуда и подключаются fbclient.dll
Пробовал копировать в папку с pro файлом, но не помогает :(

А что значит: " где LIBS += -l...?"  ???


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 17, 2016, 22:53
-L указывает на путь, где лежат .lib файлы, указанные через -l

в вашем файле я только -L увидел, а это только путь. вот и спросил, почему сами либы не указаны?


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 07:39
Указывал -lfbclient в конце пути не помогает


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 10:16
а файл с либой где лежить и как называется?


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 10:36
а файл с либой где лежить и как называется?

Извините не понял вопроса.
Какой файл?
Pro?


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 11:15
fbclient.lib


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 13:53
Пробовал класть в папку с проектом  ...qt/src/plugins/sqldrivers/ibase
Из pro-файла пытался прописать путь  LIBS += -L"C:/Program Files/Firebird/Firebird_3_0/lib"

Но увы


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 14:07
а каким компилятором собрана либа и каким ваше приложение?


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 14:26
а каким компилятором собрана либа и каким ваше приложение?

Либу взял из FireBird(64-бита) когда установил, а приложение собрано 32-битным компилятором


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 15:48
Ну вот и ответ, собственно :)


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 16:23
Ну вот и ответ, собственно :)

Т.е надо ставить 32-битный Firebird


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 16:26
да, или приложение под 64 бит собирать.


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 18:20
Не получилось  :(
Поставил 32-битный Firebird
Код:
TARGET	 = qsqlibase

HEADERS = ../../../sql/drivers/ibase/qsql_ibase.h
SOURCES = main.cpp \
                  ../../../sql/drivers/ibase/qsql_ibase.cpp


INCLUDEPATH += "C:/Program Files (x86)/Firebird/Firebird_2_5/include"

unix:!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ):LIBS    *= -lgds

win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
        LIBS += -L"C:/Program Files (x86)/Firebird/Firebird_2_5/lib/fbclient_ms.lib"
}

include(../qsqldriverbase.pri)

Ошибка
Код:
C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:80: undefined reference to `isc_sqlcode@4'

C:\QtSDK\2010.05\qt\src\plugins\sqldrivers\ibase-build-desktop/../../../sql/drivers/ibase/qsql_ibase.cpp:83: undefined reference to `fb_interpret@12'

РУКИ КРИВЫЕ  :-[




Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 18:29
Спасибо собрал  :)

Кинул либу в папку с про файлом


Название: Re: SQL-плагин + подключение iBase
Отправлено: Racheengel от Август 18, 2016, 19:00
LIBS += -L"C:/....lib"

а должно быть

LIBS += -l"C:/....lib"

l маленькая.


Название: Re: SQL-плагин + подключение iBase
Отправлено: demaker от Август 18, 2016, 21:44
Спасибо :)