我想在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 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 builder : build_for_iphoneos
. 如果它不是autoconf,那么你可以使用该脚本来了解如何攻击它.有时您可以构建一个静态库Xcode项目,将所有文件转储到其中并点击构建.如果构建足够简单,它将为您完成大部分工作.
我知道它对您的使用无关紧要,但基于Lua的工具通常可以在应用程序商店中发布.您无法在运行时下载任意代码并对其进行解释.
你可能想看看iPhone Wax.它是一个lua/iPhone桥,让你用纯粹的lua编写本机iPhone应用程序!这是一个非常好的教程.