Xcode - определение макроса препроцессора для условной компиляции - PullRequest
5 голосов
/ 05 апреля 2011

Я использую XCode 4, и в настройках сборки своего проекта я установил:

Preprocessor macros
   Debug   DEBUG;FULL
   Release FULL

и в другой цели того же проекта:

Preprocessor macros
   Debug   DEBUG;LITE
   Release LITE

две цели используют одни и те же файлы, за исключением отдельного файла информации о списках.

Затем в моем коде я написал:

#ifdef FULL
    // ###### FULL VERSION
    NSLog(@"test");
    // ###### 
#endif

Но журнал никогда не пишется.

Что я делаю не так?Я не хочу (нужно) устанавливать значение для оператора FULL.

1 Ответ

12 голосов
/ 05 апреля 2011

Несколько макросов препроцессора разделяются пробелами, а не точкой с запятой. Так и должно быть:

Preprocessor macros
   Debug   DEBUG FULL
   Release FULL

С помощью точки с запятой вы определяете один макрос с именем "DEBUG; FULL". И это не будет соответствовать вашему #ifdef.

...