0

我有一个使用 sqlite 库的软件包。为此,我将 sqlite.a 与最终目标文件链接以创建最终包/二进制文件。

一旦创建了二进制文件,是否有办法确认哪个版本的 SQLite 已与该二进制文件链接?我问这个是因为我的构建环境中有多个版本的 SQLite(3.6.20、3.7.7.1)。我在其中一个正在执行的二进制文件中观察到一个问题,我不知道我用来制作该二进制文件的库版本。

这是我正在开发的 linux (CentOS5) 环境。

提前感谢您的帮助。

4

2 回答 2

1

您可以告诉二进制文件本身记录或声明它使用的 SQLite 版本。二进制文件在编译时从 SQLite 定义中知道这一点。由于链接是静态的,因此构建的版本与使用的版本相同。

于 2012-04-11T14:23:09.540 回答
0

您可能可以通过执行类似的操作来找到编译库的版本strings ./foo | grep "3\.[67]\.". 不幸的是,如果您没有使用 sqlite 中的任何会在您的代码中输出此字符串的函数(例如sqlite3_libversion()),它们可能没有被复制由链接器结束,可能不存在。

于 2012-04-11T15:43:17.127 回答