SQLite头和源版本不匹配



刚刚安装了SQlite3与自制,但当我去运行它时,我得到以下内容:

SQLite header and source version mismatch
2011-06-25 16:35:41 8f8b373eed7052e6e93c1805fc1effcf1db09366
2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204

注意到Linux和Ubuntu上的人有时会有这个问题,但我在Mac (OS X 10.7.5)上,所以同样的解决方案在终端上不起作用。

假设某个地方安装了另一个版本,但不知道如何解决这个问题(相当新,所以请解释一下)。

有什么建议吗?

我在评论中留下了一个答案,但我想正式回答一下什么对我有效:

  1. 我复制了我的/usr/bin
  2. 中的sqlite3 exec文件
  3. 我将/usr/local/bin中的sqlite3 exec替换为我从/usr/bin
  4. 中制作的副本。

现在可以正常工作了!(我还保存了旧的Sqlite3 exec文件为。old以防我遇到任何错误)

我想你曾经安装过sqlite3作为另一个安装的依赖项。这个安装由pkg-manager执行,将把sqlite3安装到/usr/bin/中。

我假设这次您希望从构建其源代码开始安装sqlite3。当您手动安装sqlite3时,./configure脚本将假定您的前缀为:/usr/local/bin

如果你不想要这个冲突,试试:./configure --prefix=/usr/表示您要安装到/usr/bin/,从而替换旧的。

在Ubuntu 12.04 LTS上,通过复制/usr/local/lib的版本来替换/usr/lib/i386-linux-gnu中的libsqlite3.so.0libsqlite3.so.0.8.6,并覆盖/usr/lib/i386-linux-gnu中的版本也为我解决了sqlite3问题。

但是,这会干扰Skype 4.2 for Linux的工作,导致消息
skype美元

skype:加载共享库时出现错误:libsqlite3.so。0:错误的ELF类:ELFCLASS64

这主要是因为sqlite3客户端和其他二进制文件不匹配。在我的例子中

IN-PF1CCNV7:/usr/lib64 # rpm -qa | grep sqlite sqlite3-3.28.0-lp151.2.3.1。x86_64 libsqlite3 - 0 - 3.23.1 - 1.10。x86_64 sqlite3-devel-3.23.1-lp150.1.1。x86_64 IN-PF1CCNV7:/usr/lib64 # zypper install sqlite3

我卸载了sqlite3并安装了与sqlite3-devel相同的rpm

就发生在我的Centos 7上。

我解决了移动二进制文件到/usr/lib64和/usr/bin

mv /opt/usr/bin/sqlite3 /usr/lib64 
mv /opt/usr/bin/sqlite3 /usr/bin 

/usr/include

mv /opt/usr/include/sqlite3.h /usr/include/sqlite3.h 
mv /opt/usr/include/sqlite3ext.h /usr/include/sqlite3ext.h 

和/usr/lib64中的库

mv /opt/usr/bin/sqlite3 /usr/lib64/ 
cp /usr/lib64/ /usr/bin/ 

最新更新