14

プロジェクト内のすべての .c ファイルをコンパイルするメイクファイルがあります。ファイルごとに、すべてのオプションとフラグを含むコンパイル コマンド全体がシェルに出力されます。これは、1 つのファイルの出力例です。

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

問題は、この混乱したコマンド出力全体の中でさまざまな警告が失われることです。表示される警告とエラーのみを出力する方法はありますか (元のコマンドではありません)。

4

4 に答える 4

22

オプションで実行make-sます。マニュアルページから。

-s, --silent, --quiet
    Silent operation; do not print the commands as they are executed.
于 2012-08-14T16:18:03.347 に答える
6

コマンドの前@シンボルを追加するだけです。

組み込みの暗黙のルールに依存している場合は、それらを明示的にする必要があります。または、特定のケースでは、次を使用できます。

.SILENT: *.o

%.oターゲットへのビルドに使用されるすべてのコマンドをサイレンシングします。

于 2012-08-14T16:15:47.740 に答える
5

からのすべての出力をいつでもフィルタリングできますstdout。これにより、すべてのエラーが残りますstderr

make 1>/dev/null
于 2012-08-14T16:20:22.193 に答える
4

コマンドの前に使用@して、コマンドを非表示にします。

rule1:
  @gcc someting
于 2012-08-14T16:16:12.260 に答える