安装Lua到iPhone App

原文:http://www.grzmobile.com/blog/2009/11/13/integrating-lua-into-an-iphone-app.html

原文标题:Integrating Lua into an iPhone App

翻译:

我晚上花了很长时间把Lua整合编译到iPhone程序.当我弄懂了在Xcode添加目标,还有一个安装小技巧(我以前做过,但隔了段时间就忘了,现在花了老长的时间才想起来),这些基本步骤后,安装就变得轻而易举.本课我用Cocos2d项目做例子,当然一般的UIKit项目也是一样.请注意我还是个Xcode新手,这么快就用Cocos2d显然不是首选,但他还是运转正常,哈哈.期待你的留言和指正.

为了行文简短.我只讲操作流程和函数.下一篇博文我再解释Lua是什么,好在哪.

源代码.

操作Xcode前,先考虑项目结构,是单一项目单一目标,还是单一项目加上Lua 目标,还是2个不同的项目。对于Xcode而言,这3种做法都行,我选用单个项目多个目标。添加的目标用来创建Lua 静态库。静态类的好处是能把Lua从项目文件中分离出来。而保证Lua SDK不会变动。顺便说一下,Cocos2d 也是这样做的,当你创建Cocos2d 模板项目时,实际操作的是Cocos2d 静态库。

新建项目。File->New Project->Cocos2d Application,命名Test Lua


右键Target->add -> New Target...->Static Library, 命名Lua

http://www.lua.org 下载Lua,直接解压到项目目录。当前版本是5.1.4 ,如下:


Xcode窗口的项目标题Test Lua,右键->Add->New Group,命名为Lua

注意不要勾选复制,只用选择Add to Targets下的Lua:

应该右键点击Lua 以确认没有错误。

Targets目标下,右键点击Test Lua->Get info->General标签

点击Linked Libraries下的+按钮。

选择libLua.a并点击Add按钮

点击Direct Dependencies下的+按钮。

选择Lua,点击Add按钮。

关闭“Target Test Lua Info窗口。

现在就能开始项目了,你会注意到有3个构建目标:项目代码,Cocos2d和Lua。需要构建而无错误提示。如果遇到了linker 错误,看你是否没有引入Lua5.1.4 库的 lua.c, luac.c, 或 print.c。因为他们都有自己的main函数,所以引入会导致错误。

现在写代码来初始Lua 、打开Classes下的HelloWorldScene.m,在#import "HelloWorldScene.h" 这一行后面加上:

extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};

int run_lua(void)
{
lua_State *l;
l = lua_open();
luaopen_base(l);

printf("\nAbout to run Lua code\n");
luaL_loadstring(l, "print(\"Running Lua Code...\")");
lua_pcall(l, 0, LUA_MULTRET, 0);
printf("Lua code done.\n\n");

lua_close(l);
return 0;
}
再把下面代码加到 HelloWorldScene 的初始化函数:

run_lua();
最后,把 HelloWorldScene.m改成 HelloWorldScene.m m,编译器会把它作为 Objective-C++文件来编译,这样 Lua 头文件才能正确导入。
当程序运行时,点击 GDB 按钮。


会看到下面3行输出,2行C,1行Lua:


本课就讲完了。很明显这段代码没有什么实用价值。因为Lua 没有和你的程序发生任何交互。一旦我自己试好了有什么新发现,我就会写博文把他们贴出来的。

最后一点,如果你是用UIKit 做开发,最好用iPhone Wax 。Lua 库可以使Lua和obj-C共存。而不用使用注册函数。对于游戏,你会用到前面所讲的。

(完)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值