SQLite 标头和源版本不匹配

SQLite 标头和源版本不匹配

我有带有的 SQLite3 的 Ubuntu 存储库v3.7.17。但是它没有.save较新版本的命令。

为了更新我所做的:

  1. sudo apt-get purge sqlite3
  2. 下载SQLite 3.8.4.3
  3. 使用安装./configure && make && sudo make install

但是现在当我尝试sqlite3从命令行运行时我得到:

SQLite header and source version mismatch
2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3

经过搜索,我发现了两个我尝试过但没有成功的解决方案:

  • 这个答案没有用,因为我sqlite没有/usr/bin
  • 此解决方案也没有用,但我确实备份了以恢复那些无用的更改。

知道如何解决这个错误吗?

答案1

从源代码构建后,您的v3.8.4.3版本现已安装在/usr/local/lib

您需要将/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6(或/usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6对于 i386 arch) 替换为/usr/local/lib

sudo cp /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

答案2

我刚刚在 Debian 上下载并编译了它,遇到了同样的问题。我通过静态链接 sqlite3 解决了它:

./configure --disable-dynamic-extensions --enable-static --disable-shared
make
make install

您可能只需要--enable-static但我特意添加了--disable-shared以确保。

问候

答案3

在我的例子中,sqlite3 二进制文件是从特定用户登录(批处理脚本)调用的。该脚本在/usr/bin/sqlite3其自己的应用程序安装 sqlite3 版本之前就已经看到了,尽管读取的是第二个版本的库,而不是第一个版本的库。我在用户文件中的行${path to special application ~/bin}首添加了以下内容。export PATH=.bashrc

相关内容