我试图在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);
我从lua.org/ftp下载了Lua 5.1.4,并将其编译为Mac OS X.@H_502_5@在Xcode项目中,我使用“添加现有框架”来添加liblua.a,我使用“添加现有文件”来添加include目录.
这样可以预期,并打印字符串:“你好Lua”.@H_502_5@当我在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应用程序.@H_502_5@有没有人知道如何使这项工作?
(顺便说一下,如果苹果可能不接受我的应用程序,如果它有Lua,我不太在乎.)
解决方法
您需要为ARM编译Lua .a,而不是Intel.如果Lua库使用autoconf,则可以使用我最喜欢的iphone / autoconf构建器:
build_for_iphoneos
.如果不是autoconf,那么可以使用该脚本了解如何攻击它.有时您可以建立一个静态库Xcode项目,将所有文件转储到其中,然后点击构建.如果构建足够简单,它将为您做大部分工作.
我知道这对您的使用并不重要,但是基于Lua的工具通常可以在应用商店中发货.您只能在运行时下载任意代码并进行解释.