readline库允许sqlite的CLI接受箭头键来调用以前键入的命令。我可以在没有这个和sqlite的情况下构建,只是一个没有这个好功能的麻烦。我从yum安装了readline-devel,并且存在/usr/lib64/libreadline.so.5以及它的头文件。当我运行./configure来构建sqlite时,我看到以下几行:
checking for library containing readline... no
checking for readline... no
库路径设置为正确的路径:
LD_LIBRARY_PATH="/usr/lib64:/usr/local/lib:/lib:/usr/lib"
默认情况下,。/ configure确实尝试包含readline支持,因此不需要特殊的“--with-XXXX”选项。
每个人都看到过这个问题?我需要使用这个较新的版本来获得最新的外键支持。在CentOS上运行很麻烦,因为捆绑了相当旧版本的应用程序,但我们现在没有选择,我找不到更新版本的sqlite更新的RPM。
=== UPDATE ===
好的,我找到了解决方案,但我并不完全喜欢它......
首先,我尝试使用此选项:
./ configure CPPFLAGS =“ - I / usr / include / -DHAVE_READLINE”
这导致readline功能被编译到shell.c中,这是初学者所需要的。但是,链接失败,因为它找不到libreadline。我能想出来的唯一'kludgy'方法是在运行上面的./configure命令后手动编辑Makefile。我更改了这一行:
LIBS = -ldl -lpthread
到此:
LIBS = -ldl -lpthread -lreadline -ltermcap
然后我运行“make clean all”和“make install”,readline功能在CLI中运行。
我尝试了各种我能想到的方法来传递额外的库,包括使用LIBS导出,使用READLINE_LIBS导出,使用LDFLAGS导出,什么都行不通。如果将LIBS设置为任何内容,例如“export LIBS =” - lreadline“,则会导致configure失败。关于使用LIBS的configure上的--help似乎与实际将其设置为任何值时发生的情况相矛盾。
无论如何,这是有效的,所以我可以忍受它 - 但我不是特别喜欢它! :(
====正确的解决方案====
嗯,你不知道吗?花了好几个小时试图搞清楚,然后在谷歌上找到了正确的提示。只需要先安装ncurses-devel。因此,总结一下构建它所需要的所有“unkludgily”:yum install ncurses ncurses-devel
yum install readline readline-devel
yum install libtermcap libtermcap-devel
./configure
make
make install
不需要特殊的命令行选项或导出或Makefile编辑!现在默认情况下会自动内置Readline支持。