close

翻譯自 http://gamedevgeek.com/tutorials/getting-started-with-lua/
轉貼自 http://blog.csdn.net/lodger007/archive/2006/06/26/836466.aspx

Lua入門

Lua是一個被設計成用於擴展C/C++編程的輕量級腳本語言。 不幸的是,網上很少有關於這個語言的在線教程。 我主要通過閱讀其源代碼來了解它是怎樣工作並且通過一些發布的程序學習它。 希望,通過下面的教程,會讓學習Lua更加簡單。
本教程涵蓋了Lua5.1。 在Lua的每一個版本中都有一些非常不同之處。 下面的示例代碼將不能在老版本的Lua下運行。 如果你仍然在使用老版本而且不願意升級,不用擔心,我已經在文章底部提供了4.0和5.0教程的源代碼下載連接。 好了,讓我們開始吧!


首先,你需要下載Lua。 你需要從 Lua下載頁面 去下載源代碼。 如果你需要編譯好了的二進制庫,你能在 LuaBinaries 中找到你想要的庫(lib or dll)。


現在,我們需要安裝Lua。 在Linux下,你應該先解壓文件,然後以root用戶在命令行鍵入"make linux"和"make linux install"。 如果你需要幫助,請參考源 代碼文件夾中的INSTALL文件。 現在,我下載了windows平台下的二進制庫包並把它們解壓到"C:\Program Files\lua5.1"。


在Linux下不需要我們做任何設置,但是在windows平台下我們必須配置Visual C++,以便讓編譯器和連接器找到Lua文件。


打開Visual C++,選擇Tools菜單中的選項菜單。
展開"項目",並選擇"VC++ 目錄"。
選擇"包含文件",添加一個新路徑"C:\Program Files\lua5.1\include"。
在選擇"庫文家",添加路徑"C:\Program Files\lua5.1\lib\dll"(這裡假設你下載的庫為dll,你也可以下載靜態鏈接庫)。
確定。 
現在你可以開始編譯你的第一個Lua應用了。


使用Lua開始你的第一個程序
這個程序簡短且直接,下面做一點說明:


lua_open()返回一個指向Lua解釋器的一個指針。
luaL_openlibs()用於裝載Lua庫,它提供了一些簡單的函數,如:print。
通過調用luaL_dofile()執行腳本。 它的作用是讀取並解釋腳本。
最後,通過lua_close()函數關閉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);


 /* 運行腳本*/
 luaL_dofile(L, "test.lua");


 /* 清除Lua */
 lua_close(L);


 /* 暫停*/
 printf( "Press enter to exit…" );
 getchar();


 return 0;
}
下面是test.lua的內容。


-- simple test


print "Hello, World!"
編譯
在Linux下,在命令行鍵入:


g++ luatest.cpp -llua -ldl -o luatest然後,鍵入下列命令運行:


./luatest如果沒有問題,程序將在終端輸出Hello, World!


在Visual C++你將需要進行下列步驟:


創建一個新的空Win32控制台應用工程。
將"luatest.cpp"加入你的工程。
選擇項目菜單中的屬性菜單。
在"連接器"的"輸入"欄目的"附加依賴項"中輸入"lua5.1.lib"。
確定。
此時,按F7構建程序。


如果你採用的是dll庫,請確保將其放在應用程序的目錄中或者windows系統能夠找到它的地方。 如果你採用的是靜態連接庫,則不需要。


 (本文由Groov0V翻譯,轉載請指明出處!)


 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lodger007/archive/2006/06/26/836466.aspx

arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()