【问题标题】:Compile IBase driver for Android using QT5使用 QT5 为 Android 编译 IBase 驱动程序
【发布时间】:2022-10-06 22:01:57
【问题描述】:

几天来,我一直在尝试为 Android 编译 IBase 驱动程序。 我已经有一个 Windows 桌面应用程序,我在其中编译了 IBase 驱动程序以连接到 Firebird 数据库。一切正常。

现在,我正在为 Android 编译相同的桌面应用程序。该应用程序可以正确编译并在 Android 手机上正确打开。 但我需要 Android 应用程序也可以连接到远程 Firebird 数据库。这就是问题所在。我无法以任何方式生成适用于 Android 的 Ibase 驱动程序。

我的 Android 应用程序总是说:

QSqlDatabase:未加载 QIBASE 驱动程序

我已经从 Firebird 下载了许多文件来尝试生成 .so 文件。

我使用火鸟 2.5.8。我使用 Windows 10。我使用 Qt 5.14.2。

知道如何为 Android 生成 ibase 驱动程序吗?

  • 请提供足够的代码,以便其他人可以更好地理解或重现该问题。
  • 这不是你应该问 Qt 支持的东西吗?

标签: android qt firebird


【解决方案1】:

早上好。 基本上,我正在编辑位于我的计算机上的项目“IBASE.PRO”C:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\ibase并添加参数:

INCLUDEPATH+=C:\firebird64\include LIBS+=C:\firebird64\lib\fbclient_ms.lib

使用“Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android)”套件编译时,出现错误:

C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 42302 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 42416 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 42650 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 44090 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 44766 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 53030 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 53784 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 54678 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 42876 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 46090 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 57888 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 46436 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 46558 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 46670 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 47132 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 47242 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 47822 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 48260 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 48600 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 49050 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 30514 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 56776 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 43874 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 51482 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 51816 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 54998 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 44312 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 55780 is not an ELF object
C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570/toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: C:\firebird64\lib\fbclient_ms.lib: member at 57326 is not an ELF object
..\ibase/qsql_ibase.cpp:442: error: undefined reference to 'isc_dsql_free_statement'
..\ibase/qsql_ibase.cpp:900: error: undefined reference to 'isc_commit_transaction'
..\ibase/qsql_ibase.cpp:457: error: undefined reference to 'isc_create_blob2'
..\ibase/qsql_ibase.cpp:462: error: undefined reference to 'isc_put_segment'
..\ibase/qsql_ibase.cpp:469: error: undefined reference to 'isc_close_blob'
..\ibase/qsql_ibase.cpp:477: error: undefined reference to 'isc_open_blob2'
..\ibase/qsql_ibase.cpp:487: error: undefined reference to 'isc_get_segment'
..\ibase/qsql_ibase.cpp:498: error: undefined reference to 'isc_close_blob'
..\ibase/qsql_ibase.cpp:619: error: undefined reference to 'isc_array_lookup_bounds'
..\ibase/qsql_ibase.cpp:651: error: undefined reference to 'isc_array_get_slice'
..\ibase/qsql_ibase.cpp:807: error: undefined reference to 'isc_array_lookup_bounds'
..\ibase/qsql_ibase.cpp:853: error: undefined reference to 'isc_array_put_slice'
..\ibase/qsql_ibase.cpp:862: error: undefined reference to 'isc_dsql_sql_info'
..\ibase/qsql_ibase.cpp:866: error: undefined reference to 'isc_vax_integer'
..\ibase/qsql_ibase.cpp:867: error: undefined reference to 'isc_vax_integer'
..\ibase/qsql_ibase.cpp:882: error: undefined reference to 'isc_start_transaction'
..\ibase/qsql_ibase.cpp:938: error: undefined reference to 'isc_dsql_allocate_statement'
..\ibase/qsql_ibase.cpp:942: error: undefined reference to 'isc_dsql_prepare'
..\ibase/qsql_ibase.cpp:948: error: undefined reference to 'isc_dsql_describe_bind'
..\ibase/qsql_ibase.cpp:959: error: undefined reference to 'isc_dsql_describe_bind'
..\ibase/qsql_ibase.cpp:973: error: undefined reference to 'isc_dsql_describe'
..\ibase/qsql_ibase.cpp:1093: error: undefined reference to 'isc_dsql_free_statement'
..\ibase/qsql_ibase.cpp:1099: error: undefined reference to 'isc_dsql_execute2'
..\ibase/qsql_ibase.cpp:1101: error: undefined reference to 'isc_dsql_execute'
..\ibase/qsql_ibase.cpp:1141: error: undefined reference to 'isc_dsql_fetch'
..\ibase/qsql_ibase.cpp:1353: error: undefined reference to 'isc_dsql_sql_info'
..\ibase/qsql_ibase.cpp:1359: error: undefined reference to 'isc_vax_integer'
..\ibase/qsql_ibase.cpp:1361: error: undefined reference to 'isc_vax_integer'
..\ibase/qsql_ibase.cpp:1544: error: undefined reference to 'isc_attach_database'
..\ibase/qsql_ibase.cpp:1568: error: undefined reference to 'isc_cancel_events'
..\ibase/qsql_ibase.cpp:1581: error: undefined reference to 'isc_detach_database'
..\ibase/qsql_ibase.cpp:1601: error: undefined reference to 'isc_start_transaction'
..\ibase/qsql_ibase.cpp:1614: error: undefined reference to 'isc_commit_transaction'
..\ibase/qsql_ibase.cpp:1628: error: undefined reference to 'isc_rollback_transaction'
..\ibase/qsql_ibase.cpp:1830: error: undefined reference to 'isc_event_block'
..\ibase/qsql_ibase.cpp:1842: error: undefined reference to 'isc_que_events'
..\ibase/qsql_ibase.cpp:1883: error: undefined reference to 'isc_cancel_events'
..\ibase/qsql_ibase.cpp:1913: error: undefined reference to 'isc_event_counts'
..\ibase/qsql_ibase.cpp:1924: error: undefined reference to 'isc_que_events'
..\ibase/qsql_ibase.cpp:81: error: undefined reference to 'isc_sqlcode'
..\ibase/qsql_ibase.cpp:84: error: undefined reference to 'fb_interpret'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [\plugins\sqldrivers\libplugins_sqldrivers_qsqlibase_armeabi-v7a.so] Error 1
09:04:09: The process "C:\Users\digit\AppData\Local\Android\Sdk\ndk\20.0.5594570\prebuilt\windows-x86_64\bin\make.exe" exited with code 2.
Error while building/deploying project ibase (kit: Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android))
When e`enter code here`xecuting step "Make"
09:04:09: Elapsed time: 00:15.

可能项目中包含的文件不是生成 ibase 插件的正确文件。 但是在哪里可以找到正确的文件?你有任何关于使用 QT5 为 Android 编译 IBase 驱动程序的文档吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-23
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多