119

それらの意味は何ですか?異なる値に設定できますか?

4

2 に答える 2

117

アーキテクチャは構築したいものであり、有効なアーキテクチャはコードベースで構築できると考えられるものです。

したがって、armv7s 用のバイナリのみをビルドしたい場合がありますが、同じソース コードは armv7 と armv6 で正常にコンパイルされます。ですが、コードで実際にビルドしたいのはこれだけなのでVALID_ARCHS = armv6 armv7 armv7s、設定します。ARCHS = armv7s

または、Apple の場合:

ARCHS(建築)

スペースで区切られた識別子のリスト。バイナリの対象となるアーキテクチャ (ABI、プロセッサ モデル) を指定します。このビルド設定で複数のアーキテクチャが指定されている場合、生成されたバイナリには、指定された各アーキテクチャのオブジェクト コードが含まれる場合があります。

と:

VALID_ARCHS (有効なアーキテクチャ)

スペースで区切られた識別子のリスト。バイナリをビルドできるアーキテクチャを指定します。ビルド中、このリストは ARCHS ビルド設定の値と交差します。結果のリストは、バイナリを実行できるアーキテクチャを指定します。結果のアーキテクチャ リストが空の場合、ターゲットはバイナリを生成しません。

出典: Xcode ビルド設定リファレンス

実際には、そのままにしておくVALID_ARCHSと、変更について心配する必要はなく、ARCHS構築したいアーキテクチャを設定するためにいじるだけです。通常、デバッグ ビルドを justNATIVE_ARCHに設定します。これは、テスト/実行するマシンのデバッグ バージョンのみをビルドし、サポートする予定のアーキテクチャ全体のリリース ビルドのみを作成するためです。

于 2012-10-03T02:39:58.053 に答える
4

Valid Architectures Apple のドキュメントから、Xcode が構築するバイナリは と交差するリストであることがわかりArchitecturesます。

だから、彼が言うように、私はジェレミーの答えが正しいとは思わない:

したがって、armv7s 用のバイナリのみをビルドしたい場合がありますが、同じソース コードは
armv7 と armv6 で正常にコンパイルされます。VALID_ARCHS = armv6 armv7 armv7sしかし、コードで実際にビルドしたいのはこれだけなので、ARCHS = armv7s を設定します。

を設定VALID_ARCHS = armv6 armv7 armv7sして設定するとARCHS = armv7s、バイナリ Xcode のビルド結果は armv7s になります。armv6/armv7 と互換性がありませんでした。

また、armv6/armv7/armv7s と互換性を持たせたい場合は、 と を設定する必要が VALID_ARCHS = armv6 armv7 armv7sありARCHS = armv6ます。このようにして、バイナリ Xcode のビルドの結果は armv6 になり、arm プロセッサは下位互換性があるため、armv6/armv7/armv7s の両方で正常に実行できます。 .

于 2014-05-09T04:24:33.473 に答える