#makefile #suppress-warnings
#makefile #подавить-предупреждения
Вопрос:
Я создаю Android AOSP на своем сервере под управлением Ubunty 16.04. У меня установлены все зависимости, и сборка завершается нормально. Тем не менее, я получаю много предупреждений от make
команды каждый раз. Есть ли способ запретить их из вывода на консоль (например, через параметр, переданный в команду). Я пытался использовать некоторые gcc
флаги в попытке, но компилятор либо игнорировал их, либо выдавал ошибки из-за нераспознанных параметров.
Спасибо за любезную помощь. Лоренцо
Комментарии:
1. Какие предупреждения вы получаете? Пожалуйста, приведите пример (вырезать и вставить, а не перефразировать), чтобы мы знали, о чем вы говорите.
2. Предупреждения о сборке AOSP — известная проблема, особенно когда вы выполняете полную сборку. Кроме того, каждый проект в AOSP имеет свою собственную конфигурацию GCC, поэтому я не думаю, что есть быстрое решение… Вы можете изменить каждый проект, добавив флаги, чтобы отключить эти предупреждения, но поддерживать их будет сложно.
Ответ №1:
gcc
имеет -w
опцию, которая подавляет все предупреждения. Предупреждение должно быть помещено после любых других флагов компилятора. Как вы это сделаете, зависит от рецептов makefile. CXXFLAGS = -w
Может сработать задержка. Поместите -w
за по умолчанию пустую переменную, и вы сможете переопределить ее из вызова make.
Makefile:
...
EXTRA_FLAGS ?=
# CXXFLAGS is a convention, your flag variables may be named differently
CXXFLAGS = $(EXTRA_FLAGS)
Выполнить вызов
make my_target EXTRA_FLAGS="-w"
Вы также можете установить переменную окружения EXTRA_FLAGS для установки неявно для каждого вызова:
export EXTRA_FLAGS="-w"
make my_target
export EXTRA_FLAGS=""
make my_target
Предостережения включают конфликт с -Werror
, но предполагают, что вы его не используете, поскольку он компилируется с предупреждениями.