Как я могу выделить строки предупреждений и ошибок в выводе make?

Иногда вывод make заполняет экран. Немного сложно определить все строки предупреждений и сообщений об ошибках. Я знаю, может ли помочь вывод цвета оболочки Может ли кто-нибудь мне помочь?

28
задан poolie 5 June 2017 в 19:24
поделиться

3 ответа

Взгляните на colormake, нашли здесь

$ apt-cache search colormake
colormake - simple wrapper around make to colorize output

Используя мощь Google, я также нашел эту функцию bash.

make()
{
  pathpat="(/[^/]*)+:[0-9]+"
  ccred=$(echo -e "\033[0;31m")
  ccyellow=$(echo -e "\033[0;33m")
  ccend=$(echo -e "\033[0m")
  /usr/bin/make "$@" 2>&1 | sed -E -e "/[Ee]rror[: ]/ s%$pathpat%$ccred&$ccend%g" -e "/[Ww]arning[: ]/ s%$pathpat%$ccyellow&$ccend%g"
  return ${PIPESTATUS[0]}
}
37
ответ дан 28 November 2019 в 02:47
поделиться

Если вы пользователь emacs, вы можете использовать команду M-x compile. Это помещает вывод make в выделенный буфер с ошибками, действующими как ссылки на соответствующую строку в исходном коде.

7
ответ дан 28 November 2019 в 02:47
поделиться

На Mac это работало путем печати tput цветовых кодов вокруг строки ошибки.

Сначала export tput цветовых кодов, как показано ниже:

export red=`tput setaf 1`
export reset=`tput sgr0`

, затем добавьте цель в Makefile, как показано ниже:

...
check-env:
ifndef ENV
    $(error ${red}ENV is undefined. Please export it using command [ export ENV=dev ]${reset})
endif
...

, затем запустите ее как make check-env

Снимок экрана - enter image description here

0
ответ дан 28 November 2019 в 02:47
поделиться