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

Почему:

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

выдает ошибку предварительной компиляции "Invalid preprocessing directive"?

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

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


person Lukasz    schedule 27.02.2012    source источник


Ответы (2)


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

Нет. Используйте это вместо этого:

#elif defined(SOME_ANOTHER_TARGET_FLAG)
person justin    schedule 27.02.2012

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

person hburde    schedule 27.02.2012