詳細(xì)講解 Lua 腳本語言入門學(xué)習(xí)
Lua 有一個同時進(jìn)行的JIT項目,提供在特定平臺上的即時編譯功能。Lua是一個被設(shè)計成用于擴(kuò)展C/C++編程的輕量級腳本語言。不幸的是,網(wǎng)上很少有關(guān)于這個語言的在線教程。我主要通過閱讀其源代碼來了解它是怎樣工作并且通過一些發(fā)布的程序?qū)W習(xí)它。希望,通過下面的教程,會讓學(xué)習(xí)Lua更加簡單。
本教程涵蓋了Lua5.1。在Lua的每一個版本中都有一些非常不同之處。下面的示例代碼將不能在老版本的Lua下運(yùn)行。如果你仍然在使用老版本而且不愿意升級,不用擔(dān)心,我已經(jīng)在文章底部提供了4.0和5.0教程的源代碼下載連接。好了,讓我們開始吧!
首先,你需要下載Lua。你需要從Lua下載頁面去下載源代碼。如果你需要編譯好了的二進(jìn)制庫,你能在LuaBinaries 中找到你想要的庫(lib or dll)。
現(xiàn)在,我們需要安裝Lua。在Linux下,你應(yīng)該先解壓文件,然后以root 用戶在命令行鍵入"make linux"和"make linux install"。如果你需要幫助,請參考源代碼文件夾中的INSTALL文件。現(xiàn)在,我下載了windows平臺下的二進(jìn)制庫包并把它們解壓到"C:\ Program Files\lua5.1"。
在Linux下不需要我們做任何設(shè)置,但是在windows平臺下我們必須配置Visual C++,以便讓編譯器和連接器找到Lua文件。
打開Visual C++,選擇Tools菜單中的選項菜單。
展開"項目",并選擇"VC++ 目錄"。
選擇"包含文件",添加一個新路徑"C:\Program Files\lua5.1\include"。
在選擇"庫文家",添加路徑"C:\Program Files\lua5.1\lib\dll"(這里假設(shè)你下載的庫為dll,你也可以下載靜態(tài)鏈接庫)。
確定。
現(xiàn)在你可以開始編譯你的***個Lua應(yīng)用了。
使用Lua開始你的***個程序
這個程序簡短且直接,下面做一點說明:
lua_open()返回一個指向Lua解釋器的一個指針。
luaL_openlibs()用于裝載Lua庫,它提供了一些簡單的函數(shù),如:print。
通過調(diào)用luaL_dofile()執(zhí)行腳本。它的作用是讀取并解釋腳本。
***,通過lua_close()函數(shù)關(guān)閉Lua。
保存文件為luatest.cpp。如果你直接使用C而不是C++,將文件名改為luatest.c,然后將extern "C"刪除。
- #include <stdio.h>extern "C" {
- #include "lua.h"
- #include "lualib.h"
- #include "lauxlib.h"
- }
- /*
Lua解釋器指針
- */
- lua_State* L;int main ( int argc, char *argv[] ){
- /* 初始化Lua */ L = lua_open();
- /* 載入Lua基本庫 */
- luaL_openlibs(L);
- /* 運(yùn)行腳本 */ luaL_dofile(L, "test.lua");
- /* 清除Lua */
- lua_close(L); /* 暫停 */
- printf( "Press enter to exit…" );
- getchar();
- return 0;
- }
下面是test.lua的內(nèi)容。
- -- simple testprint "Hello, World!"
編譯
在Linux下,在命令行鍵入:
- g++ luatest.cpp -llua -ldl -o luatest
然后,鍵入下列命令運(yùn)行:
./luatest如果沒有問題,程序?qū)⒃诮K端輸出Hello, World!
在Visual C++你將需要進(jìn)行下列步驟:
創(chuàng)建一個新的空Win32控制臺應(yīng)用工程。
將"luatest.cpp"加入你的工程。
選擇項目菜單中的屬性菜單。
在"連接器"的"輸入"欄目的"附加依賴項"中輸入"lua5.1.lib"。
確定。
此時,按F7構(gòu)建程序。
如果你采用的是dll庫,請確保將其放在應(yīng)用程序的目錄中或者windows系統(tǒng)能夠找到它的地方。如果你采用的是靜態(tài)連接庫,則不需要。 (Groov0V翻譯,轉(zhuǎn)載自CSDN)
- include <stdio.h>extern "C"
- {
- #include "lua.h"
- #include "lualib.h"
- #include "lauxlib.h"}
- /* Lua解釋器指針 */
- lua_State* L;
- int main ( int argc, char *argv[] )
- {
- /* 初始化Lua */
- L = lua_open();
- /* 載入Lua基本庫 */
- luaL_openlibs(L);
- /* 運(yùn)行腳本 */
- luaL_dofile(L, "test.lua");
- /* 清除Lua */
- lua_close(L);
- /* 暫停 */
- printf( "Press enter to exit…" );
- getchar();
- return 0;
- }
小結(jié):詳細(xì)講解 Lua 腳本語言入門學(xué)習(xí)的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!