编译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"


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

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

win10下编译lua5.3.4

1、下载lua源码http://www.lua.org/ftp/ 2、打开vs2012工具命令提示 3、cd 到lua源码的src目录 4、依次执行以下代码 cl /MD ...
  • wanghaihao_1
  • wanghaihao_1
  • 2017年08月18日 14:13
  • 551

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
  • 1217

lua5.1 到 5.3的一些经常会接触到的改动

lua5.1 到 5.3的一些经常会接触到的改动 lua的官方文档,每个版本都有一节叫做"Incompatibilities with the Previous Version", 那里面简要描述...
  • aftermisak
  • aftermisak
  • 2016年11月28日 15:53
  • 1367

windows下编译lua5.3源代码

最近在windows下搞lua测试,发现lua自带的库有点少,缺少md5等等很常用的库。网上确实有这些第三方库,但这个md5库找不到windows的版本,就想着自己手动编译。不料,这个md5库需要lu...
  • cwqcwk1
  • cwqcwk1
  • 2016年08月25日 23:16
  • 2111

lua 5.3开发调试环境搭建

简介5.1 以后就没有很好的lua IDE可用了,luastudio不错但是小贵,发现有位仁兄写了个 visual studio code的lua调试插件,试了一下还不错 插件源码环境搭建 去微软官方...
  • x356982611
  • x356982611
  • 2016年11月04日 01:21
  • 11344

pktgen 运行时选项和命令

pktgen 运行时选项和命令 运行pktgen后出现 Pktgen:/> 就像shell一样,可以输入命令,设置,显示 Pktgen command line directory f...
  • JonlyLinux
  • JonlyLinux
  • 2017年08月01日 05:31
  • 862

lua 交叉编译在arm上运行

最近接触到lua 这门小巧的脚本语言,发现很有意思。 可以代替ini等配置文件,同时也可以动态的实现一些逻辑,对经常改动的项目有很大的作用 今天利用中午的午休时间把lua移植到了我们的ar...
  • hhh3214
  • hhh3214
  • 2015年12月08日 15:18
  • 1947

编译lua,以及c和lua交叉使用

转载下: 原文: http://blog.csdn.net/puppet_master/article/details/47669925 最近发现要恶补的...
  • wangqing008
  • wangqing008
  • 2016年06月17日 17:32
  • 600

快速掌握Lua 5.3 —— 编译,运行以及错误

Q:dofile()与loadfile()的区别? A: 1、 -- "a.lua"文件中的内容。-- print("Hello Lua!") ------------------------ ...
  • VermillionTear
  • VermillionTear
  • 2016年01月19日 01:18
  • 1476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译lua5.3.3
举报原因:
原因补充:

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