Как подавить предупреждения компилятора массово в XCode - PullRequest
4 голосов
/ 06 августа 2010

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

Это оставляет мне много ненужных предупреждений, которые заглушают предупреждения в MY code.

Я использовал некоторые флаги компилятора для подавления определенных предупреждений для каждого файла, но это слишком утомительно для открытого исходного кода с файлами размером 10-20 .m.

Isесть ли все предупреждения по группе XCode или пути к файлу?Или у кого-то есть лучшее предложение?

(к вашему сведению: я использую компилятор LLVM 1.5)

Ответы [ 3 ]

2 голосов
/ 10 мая 2012

Отключение предупреждений для каждого файла очень просто.Все, что требуется, это флаг компилятора.Вот пошаговый процесс.

  1. Откройте навигатор проекта в Xcode
  2. Нажмите на значок проекта в самом верху навигатора
  3. В полученных подробностяхна панели выберите цель, с которой вы работаете
  4. Выберите «Фазы сборки»
  5. Разверните «Компилировать источники»
  6. В списке найдите файл, который вас интересует
  7. Дважды щелкните столбец под столбцом «Флаги компилятора» рядом с вашим файлом
  8. Добавьте -w в появившееся диалоговое окно
  9. Нажмите «Готово»
  10. Создайте свой бесплатный проект предупреждений

вот ссылка ссылка http://blog.bluelightninglabs.com/2011/12/suppressing-xcode-warnings-on-a-per-file-basis/

2 голосов
/ 06 августа 2010

По моему опыту, XCode 3.x, кажется, показывает только предупреждения для файлов, которые фактически были скомпилированы в самой последней сборке, поэтому, если вы собираете проект, изменяете один файл и затем собираете проект снова, вы ' Вы увидите только предупреждения для измененного файла. Обычно я считаю, что это приносит больше вреда, чем пользы (особенно потому, что в Objective-C это только предупреждение для вызова селектора, который не существует!) & Mdash; и, к счастью, это исправлено в XCode 4 & mdash; но в вашем случае это может быть полезно.

Однако по разным причинам вы можете захотеть поместить сторонний код в Framework. Это не будет автоматически подавлять предупреждения (хотя это может упростить их подавление), но это будет означать, что сторонний код был скомпилирован в библиотеку и, следовательно, не был частью вашего обычного цикла компиляции.

1 голос
/ 07 августа 2010

Это, конечно, не самое простое решение, но вы можете просмотреть эти сторонние библиотеки и исправить их, вызывая появление ошибок, и отправить исправления.Затем предупреждения исчезают, ошибки исправляются, и каждый получает удовольствие от обоих улучшений.

(Сколько предупреждений вы сможете уничтожить таким образом, будет зависеть от того, чем они являются: предупреждения устаревшего API)может быть неизбежным, если библиотека должна поддерживать более старую версию Mac OS X или iOS, где устаревшие API были единственным способом.)

...