Lua嵌入iOS/Mac工程
首先我們需要編譯lua環境,得到 lua工程的靜態庫
1.到http://www.lua.org/ftp/ 下載lua源碼,版本任意
2.解壓後 的res文件夾便是我們的需要的lua源碼
3.新建一個靜態庫工程 ,打開xcode —> File —>New —>Project –>選擇 Static Libary,並且工程名命名為lua
4.將2步驟中的res文件放到工程,Product->Build便可以編出我們需要的 .a 包
5.新建一個iOS 工程
比如新建一個名字為 LuaOniOS 的工程。
6. 將iOS工程引用lua靜態庫工程。
因靜態庫工程是iOS工程的子工程,為管理方便,將其放到到LuaOniOS工程文件夾下
- 步驟1 將 靜態庫工程的 lua.xcodeproj 文件拖拽到 iOS 工程中
- 步驟2 設置LuaOniOS 的Build Settings –> Header Search Paths 添加一條 $(SRCROOT)/LuaOniOS/Lua/Lua 目的是搜索lua頭文件時能夠索引得到
- 步驟2 設置LuaOniOS 的Build Phases –>Link Binary With Libraries 添加 libLua.a 目的是包含子工程編譯出來的靜態庫
7.在工程中新加一個 test.lua
print("hello lua on ios")
然後在ViewController.m中編寫
#import "ViewController.h" #import "lua.h" #include "lauxlib.h" #include "lualib.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; lua_State * L = luaL_newstate(); luaL_openlibs(L); NSString * scriptPath = [[NSBundle mainBundle]pathForResource:@"test" ofType:@"lua"]; int error; error = luaL_dofile(L,[scriptPath cStringUsingEncoding:NSUTF8StringEncoding]); /* runs Lua script */ if (error) { printf("%s",lua_tostring(L, -1)); } lua_close(L); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
8.執行 控制台 可以看到
hello lua on ios