2

私は何時間も検索しましたが、構成の何が問題になっているのかまだわかりません。私のプロジェクトでは、自作のlibray(myLib)を使用しています。このライブラリは、シミュレーターでのみ機能するようにコンパイルされており、そこで完全に機能します。

iPhoneデバイスでもコンパイルできるように何を変更する必要がありますか?

これは私の現在の警告です:

ld: warning: in /.../myLib.a, file is not of required architecture

これは(myLib.aの)私の構成です

代替テキスト

このエラーの理由を説明する記事をたくさん見つけましたが、解決策を見つけることができませんでした:

シミュレータはx86アーキテクチャで実行されますが、デバイスはARMアーキテクチャを使用します。


ライブラリをiPhoneで動作させるには、何を変更する必要がありますか?

ありがとう


編集:

私がこれまでにしたこと:

  1. 両方のプロジェクトをクリーンアップ
  2. ライブラリを「デバイス」に設定します(3.1)
  3. ライブラリを構築しました
  4. ライブラリの.aファイルをアプリケーションにドラッグしました

結果:

これはシミュレーターでは機能しますが、アクティブなSDKをデバイスに設定してもfile is not of required architectureエラーが発生します。

mahboudz(ご支援ありがとうございます)リンクも試してみました。シェルスクリプトを使用してプロジェクトを構築する方法について説明します。ただし、XCodeは、ライブラリファイルのアーキテクチャが正しくなく、ビルドが失敗することを訴え続けます。

これは本当にばかげた初心者の間違いでなければなりません。

4

3 に答える 3

3

デバイス用にビルドされたファイル(build / $ config-iphoneos)とsim用にビルドされたファイル(build / $ config-iphonesimulator)の両方の.aファイルを新しいプロジェクトに追加する必要があります。ドロップする前に、必ず別の名前を付けてください。これが、AdMobや同様のサービスが静的ライブラリを出荷する方法です。

于 2009-10-16T14:35:51.843 に答える
1

ライブラリをIntel用にコンパイルして、シミュレーターが使用できるようにする必要があります(これは、既に実行済みです)。次に、ARM用にコンパイルして、iPhoneで実行できるようにします。次に、2つのライブラリをマージする必要があります。それを達成する、またはそれをより自動化するためのさまざまな方法があります。

ここにあなたを助けるためのいくつかのリンクがあります:

http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html http://www.clintharris.net/2009/iphone-app-shared-libraries/

于 2009-10-11T07:14:43.917 に答える
0

私も同じ問題に遭遇しました。.aしかし、この問題を解決するために2つのファイルをアプリプロジェクトにドラッグする必要はないようです。これは私がしたことです:

  1. 静的ライブラリプロジェクトをアプリプロジェクトのフレームワークグループにドラッグします
  2. アプリプロジェクトのターゲットの「情報を見る」
  3. 静的ライブラリの直接依存関係を設定します
  4. 静的ライブラリプロジェクト内の不要なビルド(シミュレータービルドなど)をすべてクリーンアップします
  5. アプリプロジェクトを組み込む
于 2010-07-05T03:43:40.203 に答える