我们的应用程序是Chrome浏览器插件FF &。该应用程序使用SQLite来存储数据。 SQLite文件在FF/Linux或FF/Mac上损坏。可能的共享库冲突导致损坏的SQLite数据库
为文件我们假设 ETTING损坏如下所述:
1)FF加载的SQLite 3.7.1作为共享库
2)我们的插件(这是一个共享库)是静态地链接到 SQLite 3.7.4。我们确保我们的插件仅导出一个符号为NSGetModule的 (由FF要求加载插件)。
:所有其他 的符号使用--version脚本编译器选项
3)东西坏是因为可能的符号发生在多个版本的SQLite库的
补充意见冲突 隐藏1)同样的问题在Chrome中不会出现,因为Chrome在 单独的进程中运行插件
2)我们在Windows上不面临这个问题。只有在Linux或Mac
3)我们必须为我们使用的最新版本
任何想法的功能使用SQLite 3.7.4?
我只能想到两件事情。 1)你的假设是错误的。 2)检查“nm -s”的输出,以确保不仅是您的插件正在导出的内容,还包括它在加载时从外部引用的内容,并确认SQLite符号全部解析。 – gravitron