我试图在iPhone上使用Lua.在Mac OS X中,在正常(非iOS)Cocoa应用程序中,我使用以下代码: lua_State* l;l = lua_open();luaL_openlibs(l);luaL_loadstring(l, "print(\"Hi from Lua\");");lua_pcall(l, 0, 0, 0); 我从lua.org/ftp下
lua_State* l; l = lua_open(); luaL_openlibs(l); luaL_loadstring(l, "print(\"Hi from Lua\");"); lua_pcall(l, 0, 0, 0);
我从lua.org/ftp下载了Lua 5.1.4,并将其编译为Mac OS X.
在Xcode项目中,我使用“添加现有框架”来添加liblua.a,我使用“添加现有文件”来添加include目录.
这样可以预期,并打印字符串:“你好Lua”.
当我在iOS项目中尝试相同的事情时,会给出错误:
"_luaL_newstate", referenced from: _main in main.o more of the same thing... symbol(s) not found collect2: ld returned 1 exit status
似乎.a文件没有链接到iPhone应用程序.
有没有人知道如何使这项工作?
(顺便说一下,如果苹果可能不接受我的应用程序,如果它有Lua,我不太在乎.)
您需要为ARM编译Lua .a,而不是Intel.如果Lua库使用autoconf,则可以使用我最喜欢的iphone / autoconf构建器:build_for_iphoneos
.如果不是autoconf,那么可以使用该脚本了解如何攻击它.有时您可以建立一个静态库Xcode项目,将所有文件转储到其中,然后点击构建.如果构建足够简单,它将为您做大部分工作.
我知道这对您的使用并不重要,但是基于Lua的工具通常可以在应用商店中发货.您只能在运行时下载任意代码并进行解释.