gcc (или другие компиляторы) часто генерируют огромный текстовый вывод, и очень сложно увидеть, где ошибка или пропустить предупреждения. Я сделал несколько поисков, но havn't нашел чистое простое решение для цветового кода вывода компилятора (так, например, предупреждения желтые, ошибки красные и т.д.)
Есть ли простой способ для COLOR-CODE выхода компилятора?
Ответ 1
здесь альтернатива, если вы ищете что-то очень простое:
#!/bin/bash -e
make ${@} 2>&1 | perl -wln -M'Term::ANSIColor' -e '
m/Building|gcc|g++|\bCC\b|\bcc\b/ and print "\e[1;32m", "$_", "\e[0m"
or
m/Error/i and print "\e[1;91m", "$_", "\e[0m"
or
m/Warning/i and print "\e[1;93m", "$_", "\e[0m"
or
m/Linking|\.a\b/ and print "\e[1;36m", "$_", "\e[0m"
or
print; '
Просто добавьте свой make к этому script и убедитесь, что он выполним...
Ответ 2
Gcc 4.9, похоже, добавил эту функцию через флаг -fdiagnostics-color
:
Ответ 3
Debian и Ubuntu предоставляют пакет colorgcc
для этой цели.
И я обычно запускаю gcc
(и make
) через emacs
с помощью M-x compile
, тогда сообщения раскрашиваются.
добавлений
GCC 4.9 имеет встроенную функцию раскраски и GCC 6 - выпущен в конце апреля 2016 года (и, возможно, GCC 5) позволяет по умолчанию (когда stdout является терминалом).
Ответ 4
См. colorgcc, perl script, который отображает вывод gcc.
Ответ 5
Хорошо, я просто оставлю уведомление о моем собственном инструменте на основе python:)
Он называется Pluggable Output Processor и предназначен не только для раскрашивания вывода одной конкретной программы. Вот пример GCC:
После:
Ответ 6
ColorMake будет раскрашивать вывод GCC и Make, выделяя предупреждения и ошибки. Он удобен специально для больших сложных выходов, попробуйте.
Ответ 7
вы можете использовать GilCC, который является инструментом Ruby, который преобразует вывод GCC в цвет в режиме реального времени. Сейчас у вас есть два варианта: Perl script (colorGCC) или GilCC, и если вы уже работаете с Ruby, вам понравится GilCC.
Уникальный для GilCC; GilCC имеет счетчик предупреждений и ошибок, а также показывает время компиляции, очень удобно, когда вы пытаетесь улучшить ситуацию. Потому что это в Ruby, это кросс-платформа. Он гибкий, и вы можете добавить больше драгоценных камней, чтобы настроить его в любом случае.
Ссылка на страницу загрузки находится здесь.
Ответ 8
Хотя GCC 4.9 имеет параметр -fdiagnostics-color для включения цветных выходов на терминалы, я создал крошечный инструмент под названием crror ' для получения раскрашенного компилятора.
Он поддерживает выходы от make
. Я могу добавить шаблоны раскраски для других инструментов, если кто-то требует.