Недопустимая директива предварительной обработки для #elseifdef в Xcode

почему:

 #ifdef SOME_TARGET_FLAG     
      <some code here>
    #elseifdef SOME_ANOTHER_TARGET_FLAG
      <some another code here>
    #endif

производит "недопустимая директива предварительной обработки" ошибка компиляции предварительной обработки?

SOME_TARGET_FLAG и SOME_ANOTHER_TARGET_FLAG-это просто некоторые "другие c-флаги", определенные в настройках целевой сборки (-D<FLAG_NAME> pattern).

и #elseifdef директива Не поддерживается в Xcode?

2 ответов


директива #elseifdef не поддерживается Xcode?

это не так. Используйте этот код:

#elif defined(SOME_ANOTHER_TARGET_FLAG)

Ее не поддерживается, как указано в сообщении об ошибке. См. "препроцессор C" - https://developer.apple.com/library/mac/#documentation/DeveloperTools/gcc-4.2.1/cpp/index.html#//apple_ref/doc/uid/TP40007092 (условная компиляция).