2010-06-21 2 views
3

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

[[email protected] 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 не установлена. Но ...

[[email protected] src]#ls /usr/lib/libreadline* 
/usr/lib/libreadline.so.5 /usr/lib/libreadline.so.5.1 

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

Любые идеи?


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

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

ответ

9

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

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

После команды будет делать трюк в такой среде:

$ yum install -y readline-devel

+3

или ReadLine-Devel на CentOS. 'yum install readline-devel' – nos

+0

Благодарю вас, nos. – mcandre

+0

Названия пакетов отличаются от CentOS. Я на самом деле ранее пробовал это решение, но получил разные названия - см. Мои опубликованные решения для правильных. – watusimoto

Смежные вопросы