zoukankan      html  css  js  c++  java
  • Lua1.1 公开发布的第一版

    转载出处:http://my.oschina.net/xhan/blog/309154

    Lua1.1 是官方公开发布的第一版,是事实上的第一版 ,也是最早发布的一版。

    代码从这里 www.lua.org/ftp/lua-1.1.tar.gz 下载,事实上在 www.lua.org/versions.html 页面,有所有的可以下下载到的版本。

    代码下载下来之后,解压,可以看到这次多了不少目录(和 Lua1.0 的一个孤零零的目录相比)。

    目录介绍:

    clients, include, src 目录中是代码。

    test 目录中是一些测试文件。

    doc 目录中是文档。

    编译: 看目录中有 Makefile 文件,make 一下试试,不行,各种奇怪的错误。好吧,我比较懒,就不深究原因了。开 VS2010, 把上面提到的几个代码目录中的文件全部拷贝到一起,建工程,把这些代码全部加入工程,编译,编译失败, 在 iolib.c 的 21 行报错:error C2099: initializer is not a constant    看看 iolib.c 的 21 行是什么 static FILE *in=stdin, *out=stdout;

    这个代码错误好像很熟悉的样子,是的,Lua1.0 里就遇到过了。同样,这里做如下修改:

    iolib.c 21 行 static FILE *in=stdin, *out=stdout; 改为 static FILE *in=NULL, *out=NULL;

    472 行 iolib_open 中 添加 in=stdin; out=stdout;

    再编译,很好,编译通过。看看 Debug 目录中有可执行文件生成。 写个 hello, world 试试 print ("hello, world") 可以正常执行,说明编译的很成功。

    再试下 mingw 和 linux,把 Lua1.1 的所有代码拷贝到一个目录里面,就像 Lua1.0 那样,把 Lua1.0 的 Makefile 拷贝过来。修改下目标文件,由于 Lua1.1 的文件相比 Lua1.0 有变化,我们做相应修改。词法分析和语法分析文件改为 lex.o 和 y.tab.o,由于 Lua1.1 少了 floatingpoint.h 这个文件,我们把它加上(虽然它是个没有什么内容的空文件)。iolib.c 的修改方式上面已经说了。做完这几步之后,make 一下,无论是 mingw 的 gcc 或者是 linux 里都可以成功生成可执行文件。不错,环境的准备也算挺顺利的。

    README 的主要内容包括,Lua 是什么,由谁开发,一些特点,如何安装,法律事务,如何联系作者。 Lua 是一个简单但是强大的应用程序扩展语言。 类 pascal 语法,变量不需要声明,有强大的数据描述结构,函数可接受多参数,函数可返回多个结果,代码被编译为字节码由虚拟机执行。 Lua 是由 ASNI C 写成的,是可移植的。

    Lua1.1 的文档是 *.ps 格式的文件,在 Linux 里看着比较方便,在 Windows 里要安装阅读器,为了看两个文件,我安装了 Ghostscript 和 GSview ( http://www.ghostscript.com/ )。

  • 相关阅读:
    linux学习之路第八天(linux文件权限详解)
    linux学习之路第八天(组管理和权限管理)
    python 多线程示例
    python scapy 网卡发包
    python scapy 网卡抓包
    python 返回数组的索引
    MPLS 网络中的 MTU
    mysql 导入导出sql文件
    linux 修改MTU值
    ovs 源mac, 目的src 互换
  • 原文地址:https://www.cnblogs.com/vd01/p/4936295.html
Copyright © 2011-2022 走看看