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