Работает ли препроцессор C для обнаружения OSX в Mojave? - PullRequest
0 голосов
/ 17 октября 2018

Препроцессор C для Mac OSX не работает с Mojave правильно, или я делаю какую-то глупую ошибку?Код ниже компилируется, но не выводит «test» на консоль.

В соответствии с https://sourceforge.net/p/predef/wiki/OperatingSystems/ и несколькими сообщениями о переполнении стека, на которые я смотрел __APPLE__ , следует добиться цели.Я также пробовал __MACH__ и использую __APPLE__ && __MACH__, но это тоже не работает.

Я компилирую в терминале через gcc.

Возможно ли, что они не будут работать с новейшей версией OSX, так как она была выпущена всего несколько недель назад?У меня никогда не было этой проблемы, пока я не обновился до Мохаве.

Я также пытался вызвать функцию вместо printf("test");, но результаты те же.

#include <stdio.h>
int main()
{  
    #ifdef __APPLE__
      printf("test");
    #endif

    return 0;
}

1 Ответ

0 голосов
/ 17 октября 2018

Переустановка GCC, похоже, решила проблему.#define __APPLE__ 1 отсутствовал в gcc, когда я запустил gcc -dM -E - < /dev/null в терминале.Он вернулся после переустановки.Возможна коррупция при обновлении.

...