2011-10-24 6 views
15

armv7アーキテクチャで使用するために構築したスタティックライブラリがあります。 iphone 5.0シミュレータでtestrunするiOSプロジェクトでそれらを使用しようとすると、静的ライブラリのundefined symbols for architecture i386についてエラーが表示されます。iOSシミュレータでMacが実行されていますが、armv7ではなくi386アーキテクチャが実行されていますか?

これは、iphoneシミュレータがi386用にコンパイルされたライブラリを望んでいると思いますか?シミュレータのポイントは何ですか?なぜそれがarmv7アーキテクチャをエミュレートしないのでしょうか?

静的ライブラリをテストできる唯一の方法は、物理的なiOSデバイスを接続して実行することです。

それは間違っていましたか?

+0

行くのi386とのシミュレーターを試してみたい場合は、エミュレータ:ここ

は、スクリプトのブレークダウンです。 iOSシミュレータよりもはるかに遅いです。 –

答えて

26

これはiphoneシミュレータがライブラリをコンパイルしたがっていることを意味していると思いますか? i386?シミュレータのポイントは何ですか?それではなぜdosn'tですか? もarmv7アーキテクチャをエミュレートしますか?

あなた自身の質問に答えました。 シミュレータエミュレータではありません。したがって、i386アーキテクチャで動作するMac OSXプログラムです。静的ライブラリをi386用にコンパイルしても、シミュレータ上で使用することができます。

9

私は非常にわからないけどシミュレータのARMv7デバイス、あなたのマシンに接続されているのためであるためI386です。

4

実際には、i386アーキテクチャを使用するXcodeコマンドラインツールを使用してアプリケーションをコンパイルできます(ビルド設定を変更してXcode UIで実行する方法もあります)。

xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install 

projectName.xcodeprojファイルがあるディレクトリでこのコマンドを実行します。

-sdk iphonesimulator6.1 // Build the app on iPhone simulator 6.1 
-arch i386 // Build your app using i386 architecture 
VALID_ARCHS="i386 armv7 armv7s" // Specify these architectures are valid 
clean install // Clean all the builds then re-build and install 
+0

ありがとう、これは私のために、レビューのためにオブジェクトを提出するときにFacebookのOpen Graphに関する新しい要件 – estemendoza

0

あなただけのために= < iPhoneのAndroidプロジェクトはQEMUを使用して、なぜこの問題がある5.

関連する問題