Getting Started with Lua
Lua是輕量級的指令碼語言,可以很方便用來擴充C/C++應用程式,下面我們通過幾個簡單的例子來學習Lua如何擴充C/C++的。
首先,你需要安裝Lua,如果你使用windows作業系統你可以下載別人編譯好了的二進位程式即可使用,當然你也可以下載Lua原始碼(http://www.lua.org/download.html)使用你喜歡的編譯器編譯成二進位檔案來使用.如果你使用Linux,你只需要下載原始碼解壓縮檔案檔案後執行make,然後作為root使用者執行make install即可.Unix作業系統,你下載原始碼,通過修改設定檔INSTALL中編譯選項後執行和Linux下類似的操作即可.
當然如果你想在任意路徑下都可以使用Lua,類Unix平台別忘了修改.profile檔案加入你的環境變數;windows下則需要設定環境變數.
第一個程式:
這個程式很短小,但能說明問題,首先說明幾點:
1. 調用lua_open()將建立一個指向Lua解譯器的指標。
2. lua_baselibopen()函數載入Lua庫。
3. 使用lua_dofile()載入指令碼並運行指令碼。
4. lua_close()來關閉Lua指向解譯器的指標。
將下面的代碼儲存為luatest.cpp,如果你喜歡用C而不是C++,需要儲存檔案為luatest.c並且把extern去掉。
代碼:代碼:
#include <stdio.h>extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h"}/* the Lua interpreter */lua_State* L;int main ( int argc, char *argv[] ){ /* initialize Lua */ L = lua_open(); /* load Lua base libraries */ lua_baselibopen(L); /* run the script */ lua_dofile(L, "test.lua"); /* cleanup Lua */ lua_close(L); return 0;}
下面是一個簡單的Lua指令碼:
-- simple test
代碼rint "Hello, World!"
確認它能運行。
編譯:
使用你喜歡的編譯器編譯上面儲存的C/C++檔案,下面以Linux為例:
命令列鍵入:
代碼:g++ luatest.cpp -llua -llualib -o luatest
如果沒有錯誤的話,運行程式:
代碼:./luatest
程式應該列印出:Hello, World!
如果你不是Linux作業系統,使用的是Vc++編譯器,你需要:
1. 建立一個新的win32控制台應用工程。
2. 將檔案luatest.cpp添加到你的工程中。
3. 到Project, Settings點擊Link頁。
4. 添加lua+lib.lib到Object/library modules列表中。
5. 按F7編譯器。
運行程式以前,你需要確保lua+lib.dll檔案放在windows可以找到的地方,將這個檔案從C:/Program Files/Lua-5.0拷貝到Visual C++ project目錄,如果編譯沒有錯誤的話,現在可以Ctrl+F5運行程式了。
通過這個例子我們已經踏上了在C/C++中嵌入Lua的第一步,下一篇我們介紹如何在C/C++中調用Lua函數並將函數的傳回值傳遞給C/C++程式。