5

Google 検索やその他のスタック オーバーフローの質問を利用して、これについて何時間も戸惑いましたが、役に立ちませんでした。

ターゲットが armv6 の場合、正常にコンパイルされるように見える iPhone/iPad ユニバーサル アプリケーションがあります。ただし、デバイスが iPad の場合、次の警告が表示されます。

警告: SDK 'Device - iPhone OS 3.2' のビルドには armv7 アーキテクチャが必要です。

奇妙なことに、この警告にもかかわらず、このアプリは iPad でも問題なく動作します。ただし、この場合の意味が何であれ、私は物事を「正しい方法」で行いたいと思っています。ターゲット アーキテクチャを armv7 に切り替えると、リンク エラーが発生します。

  「___restore_vfp_d8_d15_regs」、参照先:
     *編集済み*

  「___save_vfp_d8_d15_regs」、参照先:
     *編集済み*

ld: シンボルが見つかりません

collect2: ld が 1 つの終了ステータスを返しました

エラーの「編集された」部分は、リンクしようとしている静的ライブラリへの参照です。

これは、オンラインの多くの提案から私が試したものです。これらのそれぞれは、何の説明もなく何度も提案されていたため、この問題を完全に理解している人は誰もいないと思います。

「XCodeウィンドウの左上にあるドロップダウンメニューを使用してターゲットを選択しないでください。代わりに、これをベースSDKに設定し、次にベースSDKをターゲット構成でiPhone OS 3.0に設定します。ターゲットデバイスを優先ターゲットに設定します(私の状況ではiPad、iPhone OS 3.2.)」

これにより、「-lcrt1.3.1.o のライブラリが見つかりません」というエラーが発生します。

「GCC が間違ったバージョンの標準ライブラリにリンクしていないことを確認してください。(LIBRARY_SEARCH_PATH に間違ったパスが含まれていないことを確認する必要があります。)」

私の LIBRARY_SEARCH_PATH はすでに空なので、これは関係がないようです。

「GCC 4.2 ではなく GCC 4.0 でコンパイルしてみてください。」

UIKit ヘッダー ファイル内で構文エラーが発生します。エラーは「'AT_NAME' トークンの前の構文エラー」です。行は「UIKIT_EXTERN @interface UILocalizedIndexedCollat​​ion : NSObject」です。

別のプロジェクトは、同じターゲット設定で問題なくコンパイルされます。破損した XCode プロジェクトを扱っている可能性はありますか?

誰かが実際に何が起こっているかを知っていて、参照を持っているか、それを説明してもかまわない場合は、とても感謝しています.

乾杯!

4

4 に答える 4

4

ARMv7 と ARMv6 の間の VFP は、さまざまな点で異なります。ARMv7 では、通常、NEON を使用することをお勧めします。問題は、スタティック ライブラリが ARMv6 の VFP に依存していることです。ライブラリを ARMv7 でコンパイルするか、アプリケーション全体を ARMv6 のままにしておく必要があります。

GCC 4.0 に戻すのはばかげています。当時は、Apple がバックポートしない限り、ARMv7 のサポートは基本的に存在しませんでした。

于 2010-05-10T17:50:48.547 に答える
1

armv6の場合を除いて、同じエラーが発生しました。スタティック ライブラリとメイン プロジェクトのプロジェクト設定で「Compile for Thumb」のチェックを外して修正しました。

于 2011-05-11T14:23:57.197 に答える
0

このようにしてみてください http://groups.google.com/group/three20/browse_thread/thread/31ddbc047aa1b9ae/c4c5827ab0c7a76f

于 2010-09-30T07:48:25.090 に答える
0

AT_NAME エラーに関する限り、可能性の 1 つは、クラスで @end を見逃しているかどうかを確認することです。

AT_NAME エラーの詳細については、次のリンクにアクセスしてください。

http://iosdevelopertips.com/xcode/error-syntax-error-before-at_name-token.html

于 2013-08-02T04:31:30.283 に答える