Запретить все предупреждения от `make`

#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 , но предполагают, что вы его не используете, поскольку он компилируется с предупреждениями.