2009-06-01 9 views
14

iPhoneでLuaを使用しようとしています。私はlua.org/ftpからLuaの5.1.4をダウンロードおよびMac OS Xの のためにそれをコンパイルiPhoneのLua?

lua_State* l; 
l = lua_open(); 
luaL_openlibs(l); 
luaL_loadstring(l, "print(\"Hi from Lua\");"); 
lua_pcall(l, 0, 0, 0); 

:Mac OS Xでは、通常の(非IOS)Cocoaアプリケーションでは、私は次のコードを使用しましたXcodeプロジェクトでは、 "Add Existing Framework"を使用してliblua.aを追加し、 "既存ファイルを追加"を使用してインクルードディレクトリを追加しました。

これは期待どおりに動作し、 "Hi from 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のを持っている場合、Appleは私のアプリを受け入れていない可能性があることを気にしない。)

+2

あなたがルアを持っているとAppleが拒否するとは思わない。素晴らしいアイデアです。 – Kekoa

+0

AppleはiOSアプリケーション内の組み込みインタプリタでの地位を軟化させているようです。 http://www.appleoutsider.com/2010/06/10/hello-lua/ –

答えて

19

あなたはARMではなく、インテルのためのLua .Aをコンパイルする必要があります。 Luaライブラリがautoconfを使用する場合、私の好きなiphone/autoconfビルダー:build_for_iphoneosを使うことができます。 autoconfでない場合は、そのスクリプトを使用して攻撃方法を知ることができます。 Static Library Xcodeプロジェクトを作成し、すべてのファイルをダンプしてビルドしてください。ビルドがシンプルであれば、ほとんどの作業が完了します。

あなたの使用には関係ありませんが、Luaベースのツールは一般にアプリストアで出荷可能です。実行時に任意のコードをダウンロードして解釈することはできません。

+9

を参照してください。LUAではなくLUAです。そして、それはautoconfを使用しません、btw – Javier

+5

ありがとう、ARMのためにコンパイルしました。 私がしたのは、srcフォルダをXcodeプロジェクトにスローし、静的ライブラリターゲットを作成し、.hと。cファイルをCompile Sourcesフォルダにコピーし、作業用ライブラリを用意しています。 – InFreefall

+0

ダウンロードリンクをもう少し見えるようにしたいかもしれません:)そうでなければ、ありがとう! –

14

あなたはiPhone Waxをチェックアウトすることができます。純粋なluaでネイティブiPhoneアプリを書くことができるlua/iPhoneブリッジです!ここにはそれについてかなりのgood tutorialがあります。

4

あなたがiOS用のLuaのコードを書きたい場合は、直ちにMOAIをチェックアウト:http://getmoai.com/

そのiOSとAndroidのと同様に、WindowsとOSX上でゲームを開発するための絶対に楽しいフレームワークを。それだけでなく、クロスプラットフォームの方法でスクリプト化するためのLua-VMベースのホスティング環境を適切に実装する方法についてはかなり良いアイデアを提供しています.MOAIから、これについてたくさん学ぶことができます。私は今までMOAIで4タイトルをやったことがありますし、すぐにはいつでも停止しません.. MOAIは絶対にお尻をキック!

また、ターゲット環境としてSDLはあるものの同様の取り組みですLOAD81を、チェックアウト:http://github.com/antirez/load81

(私は特にOpenPandoraには興味/値の特徴を与える、少しLOAD81プロジェクトに貢献してきましたMOAIはより商業的です、LOAD81もっと愛好家です)

複数のプラットフォームターゲットのプロジェクトにLuaとLua VMを統合するさまざまな方法を学習しようとする人にとって、MOAIとLOAD81の両方は、背景と手掛かりは、進める正しい方法についてです。