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/ )。html