Я не знаю, как работает Xcode, но вижу две точки.
На изображении, которое вы публикуете, вы запрашиваете определение типа DOBJC_OLD_DISPATCH_PROTOTYPES
, но в командной строке, которую вы показываете, это OBJC_OLD_DISPATCH_PROTOTYPES
. Какой из них вы хотите определить? (Обратите внимание на первый D
на изображении: его нет в командной строке.)
С первым D
параметр командной строки будет:
-DDOBJC_OLD_DISPATCH_PROTOTYPES
( -D
означает определение , остальное - это то, что определено.)
Обычно это определение должно выполняться в параметрах препроцессора , а не компилятора. Вы можете увидеть пример здесь , хотя я не знаю, устарел ли этот пример. (Хотя где-то должна быть возможность установить определения препроцессора.)
Если Xcode, несмотря ни на что, определяет это как 1
, вы можете переопределить его, когда вам это нужно:
#ifdef OBJC_OLD_DISPATCH_PROTOTYPES
#undef OBJC_OLD_DISPATCH_PROTOTYPES
#define OBJC_OLD_DISPATCH_PROTOTYPES
#endif
(Или DOBJC_OLD_DISPATCH_PROTOTYPES
.)
Это позволит избавиться от 1
.
У вас есть дополнительная информация здесь .