詳解Lua程序語言安裝環(huán)境
Lua程序語言安裝環(huán)境是本文要介紹的內(nèi)容,Lua 是一個擴展式程序設(shè)計語言,它被設(shè)計成支持通用的過程式編程,并有相關(guān)數(shù)據(jù)描述的設(shè)施。 Lua 也能對面向?qū)ο缶幊蹋?strong>函數(shù)式編程,數(shù)據(jù)驅(qū)動式編程提供很好的支持。它可以作為一個強大、輕量的腳本語言,供任何需要的程序使用。 Lua 以一個用 clean C 寫成的庫形式提供。(所謂 Clean C ,指的 ANSI C 和 C++ 中共通的一個子集)
作為一個擴展式語言,Lua 沒有 "main" 程序的概念:它只能 嵌入 一個宿主程序中工作,這個宿主程序被稱作 embedding program 或簡稱為 host 。宿主程序可以通過調(diào)用函數(shù)執(zhí)行一小段 Lua 代碼,可以讀寫 Lua 變量,可以注入 C 函數(shù)讓 Lua 代碼調(diào)用。這些擴展的 C 函數(shù),可以大大的擴展了 Lua 可以處理事務(wù)的領(lǐng)域,這樣就可以訂制出各種語言,而它們共享一個統(tǒng)一的句法格式的框架。
Lua 的官方發(fā)布版就包含了一個叫做 lua 的簡單的宿主程序,它用 Lua 庫提供了一個保證獨立的 Lua 解釋器。Lua 是一個自由軟件,它的使用許可決定了對它的使用過程一般沒有任何保證。
Lua的安裝(linux下),兩種方式:
(方式一)
我的操作系統(tǒng)是:
- Linux oracle-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64 GNU/Linux
使用sudo apt-get install lua5.1命令直接安裝上lua,但是在c語言中嵌入lua的時候會說找不到lua.h等文件,因此如果只是簡單的運行l(wèi)ua命令執(zhí)行一些lua語句,那么這個是足夠了,但是如果要是在c語言中嵌入,就必選采用方式二。
(方式二)
我的操作系統(tǒng)是:
- Linux oracle-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64 GNU/Linux
(1)先去Lua的官網(wǎng)(http://www.lua.org/ftp/)下載最新發(fā)布包,我選擇的是 lua-5.1.4.tar.gz
(2)使用命令tar -xzvf lua-5.1.4.tar.gz
(3)cd lua-5.1.4, 然后執(zhí)行make,會提示讓你輸入make 系統(tǒng),因為我的系統(tǒng)是linux的,因此我輸入make linux
- 但運行的過程報錯了error:readline/readline.h:no such file or directory,
- 上網(wǎng)搜了一下需要安裝readline-6.1.tar.gz,因此我去wget
- http://www.sfr-fresh.com/unix/misc/readline-6.1.tar.gz
- tar -zxvf readline-6.1.tar.gz,cd ~~ ./configure && make && make install , sudo ldconfig,
- 再運行make linux,不報readline的錯誤,但是又提示
- /usr/bin/ld: cannot find -lncurses
- 在網(wǎng)上搜了一下,還得下載ncurses安裝,wget
- http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz,
- tar -xvf ncurses -5.7.tar.gz,然后 cd ncurses-5.7 ,./configure,make,make install,
- 再運行make linux就一切ok了。
(4)sudo make install
安裝完成。
測試lua是否安裝成功,直接運行l(wèi)ua就能進入編譯模式。
lua安裝完成后,可以按照lua手冊提供的c中嵌入lua的例子,將下面的程序放到a.c中:
- #include <stdio.h>
- #include <lua.h>
- #include <lauxlib.h>
- #include <lualib.h>
- int main(int argc, char *argv[])
- {
- char line[BUFSIZ];
- lua_State *L = lua_open();
- luaL_openlibs(L);
- while (fgets(line, sizeof(line), stdin) != 0) printf("%s/n",line);
- lua_close(L);
- return 0;
- }
然后使用如下命令
- gcc -I/usr/local/include/ -L/usr/local/lib/ -lm -DLUA_USE_READLINE a.c /usr/local/lib/liblua.a -ldl
運行即可編譯通過。
如果直接運行g(shù)cc a.c 會報如下錯誤:
- /tmp/ccI4JYia.o: In function `main':
- a.c:(.text+0x28): undefined reference to `luaL_newstate'
- a.c:(.text+0x3e): undefined reference to `luaL_openlibs'
- a.c:(.text+0x81): undefined reference to `lua_close'
- collect2: ld returned 1 exit status
這是因為lua調(diào)用了標準庫里的C API,因此要加上數(shù)據(jù)庫。
小結(jié):詳解Lua程序語言安裝環(huán)境的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!