我有一个奇怪的问题。
我正在开发一个使用 C 编写的共享库和一个用 C++ 编写的 GUI 应用程序。GUI 应用程序使用共享库。这个共享库使用 SQLite 合并和静态链接。GUI 也将 SQLite 用于某些配置目的。它也是静态链接的。他们都使用最新的 SQLite 版本。
我的共享库使用FTS4
. 我通过在编译共享库时提供编译时间选项来启用 FTS4。一切都适用于共享库。我在共享库代码库中的所有测试都通过了。
当我开始在 GUI 程序中使用它时会出现问题。我收到类似的错误,Unknown module FTS4
. 这很奇怪,因为我将它静态链接到我的共享库中,而这个 GUI 程序所做的只是动态链接到我的库。当我将 FTS 编译选项设置为 GUI 程序时,错误消失并且一切正常。
简而言之,
libfoo.so
- 静态链接 SQLite 与 FTS4 选项打开 - 静态链接 SQLite
foo
没有任何特殊的编译时选项。动态链接到libfoo
.
我不确定为什么会这样。任何帮助都会很棒!