Библиотека readline позволяет CLI для sqlite принимать клавиши со стрелками для вызова ранее набранных команд.Я могу построить без этого, и sqlite работает, это просто неприятность, не имея этой хорошей возможности.Я установил readline-devel из yum и присутствует /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 так же, как и довольно старые версии приложений, но сейчас у нас нет выбора, и я не могу найти обновленную версию RPM с более новой версией sqlite.
=== ОБНОВЛЕНИЕ ===
Хорошо, я нашел решение, но оно мне не совсем нравится ...
Сначала я попробовал эту опцию:
. / Configure CPPFLAGS = "- I/ usr / include / -DHAVE_READLINE "
Это приводит к компиляции функциональности readline в shell.c, что необходимо для начинающих.Но связывание не удается, потому что он не может найти libreadline.Единственный «грязный» способ, который я мог выяснить, чтобы получить ссылку, - это вручную редактировать Makefile после выполнения вышеуказанной команды ./configure.Я изменил эту строку:
LIBS = -ldl -lpthread
на эту:
LIBS = -ldl -lpthread -lreadline -ltermcap
Затем я запустил «make clean all» и «make install», и функциональность readline работает в CLI.
Я пытался всеми возможными способами передать дополнительные библиотеки, включая экспорт с использованием LIBS, экспорт с использованием READLINE_LIBS, экспорт с использованием LDFLAGS, ничего не получалось.Если вы устанавливаете LIBS на что-либо, например «export LIBS =» - lreadline », это приводит к сбою configure. Похоже, что --help при конфигурировании использования LIBS противоречит тому, что происходит, когда вы фактически устанавливаете любое значение.
В любом случае, это работает, так что я могу с этим смириться - но мне это не особо нравится!: (
==== ПРАВИЛЬНОЕ РЕШЕНИЕ ====
Ну, неужелиВы знаете это. Потратьте часы, пытаясь выяснить это, а затем наткнуться на правильный совет в Google. Просто нужно сначала установить ncurses-devel. Итак, чтобы подвести итог всему, что необходимо для его построения 'unkludgily':
yum install ncurses ncurses-devel
yum install readline readline-devel
yum install libtermcap libtermcap-devel
./configure
make
make install
Никаких специальных параметров командной строки, экспорта или редактирования Makefile не требуется! Поддержка Readline теперь автоматически встроена по умолчанию.