开发者

"cannot find -lreadline" error when compiling Lua

This should be a pretty开发者_开发技巧 straightforward issue -- I'm trying to compile Lua (or rather lua-vec, which is a minor variant) on a CentOS Linux install, and I get the following error:

[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

That would suggest the readline lib is not installed. But...

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

Interestingly, if I rearrange the order of readline/history/ncurses, whichever is first triggers the same error, so I suspect that this is some sort of a folder-specification problem, not a missing library problem.

Any ideas?


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

seems to have done the trick! The odd thing is I have compiled this before without these libs... but enough time pondering life's mysteries...


libreadline is not enough, it will give you libraries related to readline. You need libreadline-dev for compiling package which depends upon readline like in above case.

In Red Hat like distros, name of package is readline-devel

Following command will do the trick in such environment:

$ yum install -y readline-devel


If somebody has this issue in ubuntu/debian:

sudo apt-get  install libreadline-dev 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜