tolua++ 為 Lua 提供面向物件綁定支援,自動生成 C/C++ 到 Lua 的胶水代碼,讓 Lua 腳本能直接調用 C++ 類別、函數與變量。
僅需 Lua 開發包:
# 編譯靜態庫
cd tolua++_1.0.5-1/src/lib
gcc -c *.c -I../../include -I <lua_path>/include
ar rcsv libtolua++.a *.o
部署到 Cygwin/MinGW:
bin/usr/include/lib/tolua++ -o test.c tarray.pkg(產生千行級 C 代碼)。gcc tarray.c -c
gcc test.c tarray.h -c
gcc -o tarray.exe tarray.o test.o -llua -llualib -ltolua++
tarray.lua)並執行。#include "lualib.h"
#include "lauxlib.h"
extern int tolua_tarray_open(lua_State*);
int main() {
lua_State* L = lua_open();
luaopen_base(L);
tolua_tarray_open(L); // 註冊綁定
lua_dofile(L, "tarray.lua");
lua_close(L);
return 0;
}
1 2 3 ... 10
1 2 3 ... 9
對應 Lua 腳本遍歷 C 陣列 a[] 與結構體陣列 p[].x。
tolua++ 透過 .pkg → .c → 編譯鏈接 → Lua 腳本 流程,實現零手寫胶水代碼的 C/C++ 到 Lua 綁定,適合遊戲邏輯、UI 配置等熱更新場景。