Ошибка «Не могу найти -lreadline» при компиляции Lua - PullRequest
4 голосов
/ 21 июня 2010

Это должно быть довольно простой проблемой - я пытаюсь скомпилировать Lua (или, скорее, lua-vec, который является второстепенным вариантом) при установке CentOS Linux, и я получаю следующую ошибку:

[jt@flyboy src]#make linux
make all MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
make[1]: Entering directory `/jt/flyboy/fly/lua/lua-vec/src'
gcc -o lua  lua.o liblua.a -lm -Wl,-E -ldl -lreadline -lhistory -lncurses
/usr/bin/ld: cannot find -lreadline
collect2: ld returned 1 exit status
make[1]: *** [lua] Error 1

Это предполагает, что библиотека readline не установлена.Но ...

[jt@flyboy src]#ls /usr/lib/libreadline*
/usr/lib/libreadline.so.5  /usr/lib/libreadline.so.5.1

Интересно, что если я переставлю порядок readline / history / ncurses, в зависимости от того, что произойдет первым, произойдет та же ошибка, поэтому я подозреваю, что это какая-то проблема спецификации папки,не проблема с отсутствующей библиотекой.

Есть идеи?


yum install readline-devel.x86_64 readline-devel.i386 ncurses-devel.i386 ncurses-devel.x86_64  

, кажется, добились цели!Странно то, что я собирал это раньше без этих библиотек ... но достаточно времени на размышления о тайнах жизни ...

1 Ответ

10 голосов
/ 21 июня 2010

libreadline недостаточно, он даст вам библиотеки, связанные с readline.Вам нужно libreadline-dev для компиляции пакета, который зависит от readline, как в приведенном выше случае.

В Red Hat, как дистрибутивы, имя пакета равно readline-devel

Следующая команда поможетв такой среде:

$ yum install -y readline-devel
...