Objective-C синтаксическая проверка - PullRequest
0 голосов
/ 23 сентября 2009

Есть ли проверка синтаксиса Objective-C?

Я пробовал gcc -fsyntax-only, но на самом деле это не только синтаксис. Он по-прежнему выдает ошибки, если работает на отдельном файле реализации, в котором есть ссылки на внешние каркасы.

Я ищу что-то, что может выполнить проверку синтаксиса отдельных заголовочных файлов или файлов реализации, не пытаясь связать или создать объектные файлы.

Может ли gcc сделать это с дополнительными флагами, о которых я не знаю, или есть другой инструмент для этой задачи?

Я хочу сделать это из командной строки. Может ли xcodebuild сделать это для отдельного файла? Запустить xcodebuild для всего проекта, чтобы проверить синтаксис одного файла, немного.

Ответы [ 4 ]

3 голосов
/ 23 сентября 2009

У него нет возможности проверить синтаксис, не зная о заголовочных файлах для используемых вами фреймворков. Вам необходимо использовать флаг -framework для включения соответствующих заголовочных файлов.

1 голос
/ 23 сентября 2009

Таким образом, после просмотра справочной страницы gcc я обнаружил флаг -F, который позволяет добавлять каталог платформы в список каталогов gcc выполняет поиск файлов заголовков.

Это решает мою проблему.

Используйте это так: gcc -fsyntax-only -ObjC -F/Path/To/A/Framework -F/Path/To/Another/Framework File.m

1 голос
/ 23 сентября 2009

Вместо этого вы можете попробовать использовать clang -fsyntax-only, особенно если вы используете 10.6 / Xcode 3.2. Clang / LLVM имеет намного лучшее разделение между синтаксическим анализатором и другими частями цепочки компилятора. Вы можете найти лязг в /Developer/usr/bin.

0 голосов
/ 23 сентября 2009

Вы можете скомпилировать один файл в Xcode [1], используя Build-> Compile (cmd-K), который фактически является проверкой синтаксиса (нет шага связывания).

[1] Я предполагаю, что вы используете XCode, так как нет смысла использовать Objective-C без OS X (на самом деле фреймворки Cocoa).

...