2010-08-06 3 views
4

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

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

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

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

(FYI: Я использую компилятор LLVM 1.5)

+0

Похоже, что Махмуд Халифа ответил на ваш вопрос наилучшими способностями Xcode. В противном случае, похоже, вам нужно записать RADAR. Укажите номер RADAR, чтобы другие могли попросить его, когда они натолкнулись на эту тему. – jww

ответ

2

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

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

+0

Использование рамки (статическая библиотека на iphone) может быть моей лучшей надеждой, как вы сказали. Я полагаю, что это не так уж сложно, и нужно решить проблемы. Моя единственная проблема с этой техникой заключается в том, что если есть проблема, у меня больше нет исходного кода для просмотра. Это больше проблема наличия торта и его употребления, или что-то в этом роде ... –

+0

Независимо от того, показывает ли Xcode результаты из последней сборки или всех сборок, это параметр в окне «Результаты сборки». У меня есть все настройки, и мои настройки Xcode не останавливаются на ошибках, так что одна сборка нового проекта сообщает мне все предупреждения и ошибки, которые у него есть. –

+0

Последние результаты - это единственное решение, которое работает. Это просто, что иногда реальные предупреждения все еще выскакивают, если я пропускаю их на первой «свежей» сборке. –

1

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

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

+0

Вы правы, исправление предупреждений является очевидным решением. Я сделал это в нескольких проектах с открытым исходным кодом, но из-за ограничений по времени я не могу исправить предупреждения в каждом проекте с открытым исходным кодом, который я использую. Было бы идеально рассматривать код, который у меня нет времени, чтобы зафиксировать его как «черный ящик». И для некоторых проектов, как вы упомянули, устаревшие звонки запускаются. –

2

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

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

здесь является ссылкой ссылки http://blog.bluelightninglabs.com/2011/12/suppressing-xcode-warnings-on-a-per-file-basis/

+0

Спасибо за это! – Tim

Смежные вопросы