Сделать Xcode игнорировать предупреждения LLVM о сборке в стороннем проекте
У меня есть сторонний проект в моей рабочей области Xcode (это зависимость от моего основного проекта), и я хочу, чтобы Xcode игнорировал все предупреждения сборки из этого стороннего проекта.
Я хотел бы игнорировать все предупреждения сборки для группы Vendor/* в моем проекте с тех пор, когда я поместил весь свой сторонний код.
Возможные?
Ответы
Ответ 1
Да, это возможно, но только если вы скомпилируете сторонние файлы в отдельной цели. Таким образом, вы можете установить различные флаги компилятора.
Скажем, ваша основная цель - это приложение. Вы определили свои настройки сборки, а также флаги предупреждения компилятора.
Теперь вы хотите использовать сторонние источники. Вы импортируете их в свой проект, но они генерируют предупреждение. Конечно, вы могли бы изменить свои основные целевые настройки, но я уверен, что вы хотите сохранить свои собственные настройки.
Просто создайте дополнительную цель в своем проекте, которая является статической библиотекой.
Удаляет сторонние файлы из вашей основной цели и добавляет их в библиотеку.
На этапах вашей основной целевой сборки свяжите приложение со статической библиотекой.
Таким образом, вы сможете использовать сторонний код в своем приложении, имея разные настройки компилятора для стороннего кода.
Ответ 2
Это возможно для каждого файла, см. запись в блоге http://blog.bluelightninglabs.com/2011/12/suppressing-xcode-warnings-on-a-per-file-basis/
Подводя итог: используйте флаги компилятора на вкладке "Фазы сборки".
Ответ 3
Перейдите к Фазы сборки > Скомпилировать источники. Опционально отфильтруйте список. Выберите те, которые вы хотите исключить, а затем дважды щелкните в пустой области в столбце Компилятор флагов. Добавьте -w и нажмите return:
![Adding compiler flag to Build Phase]()
Ответ 4
если вы беспокоитесь только о предупреждении через включение, тогда вы можете обернуть свои включенные утверждения следующим образом:
#pragma clang diagnostic push
// in reality, you will likely need to disable *more* than Wmultichar
#pragma clang diagnostic ignored "-Wmultichar"
#include <TheirLibrary/include.h>
#pragma clang diagnostic pop
если вы также хотите отключить предупреждения сборки, которые он генерирует, вы можете использовать -w
или GCC_WARN_INHIBIT_ALL_WARNINGS = YES
для сторонней цели, к которой вы привязываетесь или связываете.
В идеале вы будете отправлять отчеты поставщику, если он закрыт. если он открыт, то, возможно, вам следует просто исправить его самостоятельно.