Многие из стандартных флагов C (-Wall, -ansi и т. Д.) Плохо работают с Objective-C
-Wall
прекрасно работает с Objective-C.
Нужно создать файл Objective-C с помощью Xcode и взглянуть на стенограмму сборки.Я только что сделал это, и вот некоторые основные моменты:
-x objective-c
Я предполагаю, что это означает "компилировать как Objective-C", вероятно, важно
-arch x86_64
сборка для конкретной архитектуры процессора
-std=gnu99
сборка для расширений C99 + GNU (на самом деле меня удивило, я думал, что Xcode использовал -std = c99).
-isysroot ....
указывает местоположение SDK.
-mmacosx-version-min=10.6
Я компилирую для 10.6 и выше
-fobjc-gc-only
Этот файл предназначен для использования со сборщиком мусора и не будет работать без него, поэтому я компилирую только для GC.
-Wall
очевидное.
Если вы выполняете компиляцию из командной строки, вероятно, неплохо было бы установить параметр для обработки предупреждений как ошибок.Я не изнутри Xcode, потому что окно результатов сборки запоминает необработанные предупреждения от предыдущих сборок.