前几天在linux下编译安装lua时遇到了一些问题,由于第一次安装上网搜了各种方法,可都没有很好的解决,最后弄了一个多小时才安装成功。
所以在此把我遇到的问题和对应的解决方案记录一下,希望可以帮到和我一样问题的同学们,下面开始写安装步骤。
首先去lua官网上下载版本http://www.lua.org/download.html比如我的版本lua-5.2.3.tar.gz
然后在linux终端下解压文件:tar -xzvf lua-5.2.3.tar.gz
这时生产一个lua-5.2.3目录 进入此目录下 然后可以先输入make 会出现下面这段话
Please do
make PLATFORM
where PLATFORM is one of these:
aix ansi bsd freebsd generic linux macosx mingw posix solaris
See INSTALL for complete instructions.
这是提示支持哪些平台,由于我们是linux 这时就可以运行make linux install,此刻如果没有提示错误的话 表面人品太好 这时你可以输入lua命令看是否安装上
如果不行或者提示关于readline相关的问题,就表明还需要安装readline,
下载地址
ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
然后tar
cd
此时需要更改configure文件里面这句:ac_default_prefix=/usr/local/readline
然后./configure
最后make
最后在回到lua-5.2.3目录 运行make linux install 如果此时报了一下相关错误
/usr/lib/libreadline.so: undefined reference to `PC' /usr/lib/libreadline.so: undefined reference to `tgetflag' /usr/lib/ibreadline.so: undefined reference to `tgetent'
由于lua依赖readline库,而readline依赖ncuress库,此时需要进入src目录下修改Makefile文件:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"
如果报相关找不到-lncurses的错误,说明需要安装ncurses:
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz,
tar -xvf ncurses-5.7.tar.gz,然后cd ncurses-5.7
./configure,make,make install,再运行make linux
然后在回头运行lua下的make linux install 此刻应该好了
最后测试lua命令看是否安装好,很可能依然会出现readline的错误,这时:
这时需要查看usr/lib下是否有libreadline.so文件如果有查看是否是最新的 可以ll查看软连接 如果不是最新可以删除 然后需要把usr/local/readline/lib下libreadline.so.6.2文件拷贝到此目录下,然后输入ln -s libreadline.so.6.2 libreadline.so
最后回到usr/local/readline/lib下输入软连接命令:
最最后在输入lua命令 此刻应该就可以安装成功了!!!!!!