【发布时间】:2010-12-28 13:34:01
【问题描述】:
我正在尝试为 Firefox 3.6.* 制作 XPCOM 组件。它使用静态编译的 libsqlite3 版本 3.7.4(具有程序独立代码生成 -- -fPIC 编译器选项)。我面临的问题是,一旦 Firefox 加载组件并开始执行,sqlite3_libversion_number() 返回 3007001,而宏 SQLITE_LIBVERSION_NUMBER 定义为 3007004。我很确定我正在链接正确的静态 sqlite3图书馆...但是我该如何仔细检查呢? ldd 生成的共享对象的输出没有将 libsqlite3.so 列为依赖项(尽管用于创建 XPCOM 组件的 libxul.so 使用 libsqlite3.so)。如何将所有 sqlite3 函数调用解析为不同版本的 SQLite?
PS:是不是因为库是用-fPIC编译的,火狐后来用dlopen加载它们?
【问题讨论】:
标签: c++ linux gcc linker sqlite