メッセージ プラグマを使用すると、プリプロセッサ マクロが定義されているかどうかを簡単に確認できます。
// will always print, to detect cases where file wasn't actually built
#pragma message "-------------------------ALWAYS----------------------------"
// if the macros are defined, the pragma message should be logged
#ifdef __linux
#pragma message "__linux"
#endif
#ifdef ANDROID
#pragma message "ANDROID"
#endif
これにより、定義されているマクロの警告メッセージが出力されます。
/.../KTTypes.h:15:9: warning: -------------------------ALWAYS---------------------------- [-W#pragma-messages]
#pragma message "-------------------------ALWAYS----------------------------"
^
/.../KTTypes.h:17:9: warning: __linux [-W#pragma-messages]
#pragma message "__linux"
^
/.../KTTypes.h:20:9: warning: ANDROID [-W#pragma-messages]
#pragma message "ANDROID"
そうです、ANDROID
両方__linux
とも apportable でビルドするときに定義され、Xcode 内からビルドするときに定義されません。