我正在 xcode 上使用 cocos2d-x 编写游戏,但在为 armv7/7s 编译正确版本的 Lua 时遇到问题。
这是我收到的错误消息:
ld: warning: ignoring file
/Users/seriousgames/Documents/PopulationTest/PopulationTest/libs/lua/liblua.a, file was built for archive which is not the architecture being linked (armv7): /Users/seriousgames/Documents/PopulationTest/PopulationTest/libs/lua/liblua.a
Undefined symbols for architecture armv7:
"_luaL_newstate", referenced from:
Behavior:nTerminate(Status) in Behavior.o
"_luaL_openlibs", referenced from:
Behavior:nTerminate(Status) in Behavior.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我选择为 macosx(不是 iOS)编译,LUA 确实可以工作。
编辑:我最终使用了旧版本的 Lua,版本 5.1.4,并按照此处的说明进行操作:http://blog.stokedsoftware.com/blog/2012/02/05/scripting-ios-games-with-lua-part-ii/
此方法不需要 lualib.a 外部库,而是 xcode 将 lua 源构建到项目中。
注意:虽然他的代码是在 Objective C 中,但我发现他的方法确实适用于 cocos2d-x。
他专门从构建中排除了 lua.c 和 luac.c 文件。我选择不这样做,但我注释掉了 int main() 函数,因为它们会与 main.m 中的函数发生冲突。我会标记这个问题的答案,但我仍然想知道如何为 arm7/7s 构建 liblua.a。
Best Answer-推荐答案 strong>
查看编辑:
编辑:我最终使用了较旧的 Lua 版本,版本 5.1.4,并按照此处的说明进行操作:http://blog.stokedsoftware.com/blog/2012/02/05/scripting-ios-games-with-lua-part-ii/此方法不需要 lualib.a 外部库,而是 xcode 将 lua 源构建到项目中。
注意:虽然他的代码在 Objective C 中,但我发现他的方法确实适用于 cocos2d-x。
他专门从构建中排除了 lua.c 和 luac.c 文件。我选择不这样做,但我注释掉了 int main() 函数,因为它们会与 main.m 中的函数发生冲突。我会标记这个问题的答案,但我仍然想知道如何为 arm7/7s 构建 liblua.a。
关于c++ - 用于 ARMv7/ARMv7s 的 Lua,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/15876532/
|