Я создал и применил простой файл, содержащий .xcconfigxcconfig: Различные макросы препроцессора для отладки/Release
GCC_PREPROCESSOR_DEFINITIONS[config=Debug] = FOODEBUG
GCC_PREPROCESSOR_DEFINITIONS[config=Release] = FOORELEASE
и main.cpp, содержащий
#include <iostream>
// This warning IS shown
#if DEBUG
#warning DEBUG is set to 1
#endif
// This warning IS NOT shown
#ifdef FOODEBUG
#warning FOODEBUG is set
#endif
// This warning IS NOT shown
#ifdef FOORELEASE
#warning FOORELEASE is set
#endif
int main(int argc, const char * argv[])
{
// insert code here...
std::cout << "Hello, World!\n";
return 0;
}
Теперь я задаюсь вопросом, почему в основной .cpp, ни FOODEBUG, ни FOORELEASE не определены ??!
Как и ожидалось, настройки сборки показывают две строки моего файла .xcconfig («Любая архитектура | Любой SDK»), но они фактически не используются.
Как я могу добиться этого?
Как это отвечает на вопрос? – AndiDog
Извините, что неясно, см. Мой отредактированный ответ. Я не говорю об изменении макросов, но назначая ненулевое значение. Надеюсь, что поможет – dogsgod
Тем не менее, я не понимаю, как это связано с моим вопросом. Разница очень ясна для меня, но ни один из макросов не определен * вообще * по Xcode. Значение или нет здесь не имеет значения. – AndiDog