iphoneos
プラットフォームの標準アーキテクチャーとしてのarm64
の導入で、64/32アーキテクチャーに特有のコードのコンパイル時の条件を実装する必要がある場合があります。コンパイル時にプラットフォームを区別するCocoaの__LP64__と__arm64__のような定義はありますか?どのように定義されていますか?
あなたはCoreGraphics/CGBase.h
を見て、どのようにいくつかの人気のあるオープンソースのプロジェクトは、それはあなたがそうのような64ビットのランタイムの有無をチェックすることができることは明らかですproviding support for arm64ある場合:
#if defined(__LP64__) && __LP64__
...
#else
...
#endif
それは(arm64
のために特別に確認することもできますthis fix for erikdoe/ocmock
#ifdef __arm64__
...
#else
....
#endif
で述べたように)ちょうど64ビットのランタイムとは対照的に、定義のこれらの種類のための包括的なリスト、またはドキュメントがありますか?どこかはどう定義されていますか?投入を受けることができます機能フラグの様々な量で
clang -dM -E -x c /dev/null
異なるCLANGバージョン船:
コンパイラの定義済みマクロの多くは、実装の詳細であり、いつでも変更される可能性があることに注意してください。 –
@GregParker:おそらく*いつでも変更されることはありませんが、確かにコンパイラのバージョン間で変更される可能性があります) –
将来訪れる人には、上記のCLANG呼び出しは現在のデフォルトのコンパイラ設定。 iOSへのクロスコンパイルは別のセットです。 xcodebuildを使用してここで特定のスキームを実行する方法を知ることができます。詳細については、関連するものや関連するものを更新しようとします。 http://stackoverflow.com/questions/20116475/how-can-i-specify-additional-clang-options-for-xcode-project –