Lua1.0 编译准备

从官网 www.lua.org/ftp/lua-1.0.tar.gz 下代码。
如何编译,ReadMe 里有这样的说明:

The code compiles and runs in RedHat 5.2 with gcc 2.7.2.3. It may not run in
newer systems, because it assumes that stdin and stdout are constants, though
ANSI C does not promise they are. If make fails, try using the fixed modules
provided in the "fixed" directory. To see the differences (which are really
quite minor), do "make diff".

注意最后一句,也就是把 fixed 目录中的三个文件拷贝到外面覆盖就好了。
fixed 目录中的代码改动如下:
------------------------------
lua.c:
33 行
void main (int argc, char *argv[])
改为
int main (int argc, char *argv[])

52 行
添加 return 0;
------------------------------
iolib.c
20 行
static FILE *in=stdin, *out=stdout;
改为
static FILE *in=NULL, *out=NULL;

395行
添加  in=stdin; out=stdout;

------------------------------
lex_yy.c
20 行
FILE *yyin = {stdin}, *yyout = {stdout};
改为
FILE *yyin = {NULL}, *yyout = {NULL};

为什么这样改,ReadMe 里有说明“It may not run in
newer systems, because it assumes that stdin and stdout are constants, though
ANSI C does not promise they are. ”

这里使用 VS2010 进行分析,建工程,把所有的源文件加入工程,编译,运行。
准备工作完成。
后来试了一下,在 Win7 里用 MinGW,在 Linux 里 gcc 也都可以以编译成功。

转载于:https://my.oschina.net/xhan/blog/305943

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值