GCC和makefile:仅显示错误和警告

Ran*_*lue 12 c gcc makefile

我有一个makefile,可以编译我项目中的每个.c文件.对于每个文件,我将整个编译命令打印到shell,包含所有选项和标志.这是一个文件的示例输出:

arm-none-eabi-gcc -c -mcpu = cortex-m3 -O0 -dM -g -gdwarf-2 -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms = src/sim/sim_configuration.lst -include ./lib/stm32core/stm32f2xx_conf.h-I.-I./lib/ARMStandardLibrary -I./lib/LwIP -I./lib/LwIP/src/include -I./lib/LwIP/src/include -I./lib/LwIP/src/include/ipv4 - I./lib/LwIP/src/include/ipv6 -I./lib/FatFS -I./lib/stm32core -I./src -I./src/sim -I./src/sd -I./src/tftp src/sim/sim_configuration.c -o src/sim/sim_configuration.o

问题是在整个命令输出的混乱中会丢失各种警告.有没有办法打印出现的警告和错误(不是原始命令)?

jxh*_*jxh 19

执行make-s选项.从手册页.

-s, --silent, --quiet
    Silent operation; do not print the commands as they are executed.
Run Code Online (Sandbox Code Playgroud)


mru*_*cci 6

只需@符号前加上命令即可.

如果您依赖内置的隐式规则,则必须将它们显式化,或者在特定情况下,您可以使用:

.SILENT: *.o
Run Code Online (Sandbox Code Playgroud)

用于静默用于构建%.o目标的所有命令.

  • 而不是(或除了)使用`@`,你可以做'MAKEFLAGS + = --quiet`.这也适用于内置规则. (4认同)

Dao*_*Wen 5

您总是可以过滤掉所有输出stdout,这应该会给您留下所有错误stderr:

make 1>/dev/null
Run Code Online (Sandbox Code Playgroud)