编译lua5.3.3

原创 2016年08月31日 10:41:17

1、下载lua最新的库并解压:

https://www.lua.org/download.html

#tar -zxf  lua-5.3.3.tar.gz

2、下载readline库并解压编译,因为lua.c引用了readline库

下载地址:ftp://ftp.gnu.org/gnu/readline/

#tar -zxf readline-6.3.tar.gz

#cd readline-6.3

#./configure --prefix=/home/XX/Desktop/lua-5.3.3/out && make && make install

3、修改lua-5.3.3/src/Makefile下面两行

CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS) -I/home/XX/Desktop/lua-5.3.3/out/include
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)  -L/home/XX/Desktop/lua-5.3.3/out/lib


gcc -std=gnu99 -o lua    -L/home/wifi/Desktop/lua-5.3.3/out/lib lua.o liblua.a -lm -Wl,-E -ldl -lreadline 
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tputs'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tgoto'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tgetflag'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `UP'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tgetent'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tgetnum'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `PC'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `tgetstr'
/home/XX/Desktop/lua-5.3.3/out/lib/libreadline.so: undefined reference to `BC'
collect2: error: ld returned 1 exit status
Makefile:64: recipe for target 'lua' failed
make[2]: *** [lua] Error 1


报这个错是因为lua 依赖readline,而readline依赖ncurses,但没有指定,就会出现“未定义的符合引用”错误。

解决方案是修改${LUA_DIR}/src/Makefile中linux编译target=linux,在SYSLIBS变量中追加‘-lncurses’选项即可。如下:

linux:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"


相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

如何编译安装Lua5.3,实现调用C共享库

1.简介 最近学习lua时,想编写一个C的共享库,然后在lua中去调用相关函数,于是我在CLion中创建了一个C共享库的工程,代码如下:library.h#ifndef LUA_1_LIBRARY_...
  • CMbug
  • CMbug
  • 2017年04月16日 00:48
  • 888

Lua 5.3 源码解读(一) VS 2015 编译源码

引言:用 lua 来编写功能的时间很长,但对于 lua 的底层原理其实知之甚少,只知道它是开源的,用 C 语言写的。今天趁着手头任务不紧,想着还是花点时间读读源码吧,总得调点恶心自己的事情干干知道自己...

lua5.3.3 vs 编译 静态库

1、下载Lua源码http://www.lua.org/ftp/lua-5.3.3.tar.gz       a 下载后解压到一个目录下,这里假设解压到文件夹 注意下载的版本 2、在VS2015中...
  • fengya1
  • fengya1
  • 2016年12月14日 13:09
  • 976

LUA5.3.3如何支持中文函数??

/*中文支持 llex.c static int llex (LexState *ls, SemInfo *seminfo) 修改如下: */ default: { if ...

lua5.3.3版本源码

  • 2016年07月12日 08:23
  • 287KB
  • 下载

lua5.3.3 win32

  • 2016年11月08日 15:26
  • 306KB
  • 下载

在windows系统下用VC6编译最新版PHP5.3.3扩展(以vld为例)

在windows系统下用VC6编译最新版PHP5.3.3扩展(以vld为例) November 27, 2010 | 作者:白菜      前言:本文以编译PHP的vld扩展为例来叙述如何在wi...
  • msbbc
  • msbbc
  • 2011年11月30日 08:26
  • 981

vs2013编译lua5.3源码

  • 2016年10月02日 16:59
  • 981KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译lua5.3.3
举报原因:
原因补充:

(最多只允许输入30个字)