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::onTerminate(Status) in Behavior.o
"_luaL_openlibs", referenced from:
Behavior::onTerminate(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 を構築する方法を知りたいと思っています。