一、报之类的错误html
/usr/lib/libreadline.so: undefined reference to `PC' /usr/lib/libreadline.so: undefined reference to `tgetflag' /usr/lib/ibreadline.so: undefined reference to `tgetent' /usr/lib/libreadline.so: undefined reference to `UP' /usr/lib/libreadline.so: undefined reference to `tputs' /usr/lib/libreadline.so: undefined reference to `tgoto' /usr/lib/libreadline.so: undefined reference to `tgetnum' /usr/lib/libreadline.so: undefined reference to `BC'
解决: linux
因为lua编译依赖readline
库,而其依赖ncurses
库,但没有指定,因此出现“未定义的符合引用”错误。须要修改${LUA_DIR}/src/Makefile
中linux编译target,在SYSLIBS变量中追加‘-lncurses’选项便可。修改后,以下:centos
linux:lua
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses".net
二、报cannot find -lncurses unix
解决:
code
说明缺乏libreadline-dev依赖包 centos: yum install readline-devel debian: apt-get install libreadline-dev.