Игнорировать все предупреждения в определенном файле с помощью LLVM/Clang
есть некоторые файлы в моем проекте iOS, которые имеют некоторые предупреждения, и я хочу игнорировать эти предупреждения. Я не хочу отключать предупреждения во всем проекте (знаю, как это сделать), только некоторые конкретные файлы. Итак, есть ли способ полностью игнорировать все предупреждения из конкретного файла?
Я использую LLVM 3.0 и Clang на Xcode 4.2.
4 ответа:
Если вы просто используете clang, то вы должны использовать синтаксис pragma для источников, которые вы поддерживаете (предполагая, что невозможно удалить предупреждение, соответствующим образом изменив программу).
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" char b = 'df'; // no warning. #pragma clang diagnostic pop
если эти программы вы не можете изменить и не поддерживаете, вы должны указать предупреждение(ы), чтобы отключить для файла, а не все. чтобы отключить все, вы можете добавить аргумент per file
-w
. источники меняются, а некоторые предупреждения применяются (или не применяются) с различными настройками сборки. сообщения clang могут рассказать вам, какой флаг приравнивается к сгенерированному предупреждению.чтобы использовать Xcode для изменения флагов сборки файла:
- выберите целевую
- выберите этап сборки
- найдите файл для изменения аргументов в фазе "компиляция источников"
- дважды щелкните его ячейку "флаги компилятора" для редактирования
я унаследовал проект, который содержал много кода 320, и эта кодовая база бросила мне несколько предупреждений и ошибок статического анализатора, которые я не хотел исправлять, так как я буду удалять этот код из проекта в ближайшем будущем.
вы можете отключить предупреждения статического анализатора для конкретного файла, включив следующий флаг компилятора:
-Xanalyzer -analyzer-disable-all-checks
вы можете объединить это с -w, чтобы отключить предупреждения для этого файла, а также. Что позволило мне отодвинуть вперед с новой разработкой, не беспокоясь о 30 или около того предупреждениях, генерируемых этой базой кода.
используя инструкции сверху: Чтобы использовать Xcode для изменения флагов сборки файла:
- выберите целевую
- выберите этап сборки
- найдите файл для изменения аргументов в фазе "компиляция источников"
- дважды щелкните его ячейку "флаги компилятора" для редактирования
- добавить " - w-Xanalyzer - анализатор-отключить-все-проверки " для подавления предупреждений и лязг предупреждений
С помощью ответа Джастина, это то, как вы делаете
1. Найдите имя предупреждения.
В моем случае его
conversion
2. Добавьте в файл компилятора флаг построения фаз
используйте фильтр, чтобы найти имя файла, в компиляции источников, типа
-Wno-[error name]
например-Wno-conversion
вы можете выбрать конкретную цель - > настройки сборки, поиск запретить все предупреждения и установить значение да. Это отключит предупреждения на этой цели. Это может быть полезно, если вы используете какой-то код, например JSONKit с cocoapods, и вы не хотите видеть, как компилятор кричит о предупреждениях:)