Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 错误时获取安静的Make-to-echo命令行_Makefile_Suppress - Fatal编程技术网

Makefile 错误时获取安静的Make-to-echo命令行

Makefile 错误时获取安静的Make-to-echo命令行,makefile,suppress,Makefile,Suppress,我有一个Makefile,它使用很长的命令行构建了许多C文件,我们通过以下规则清理了输出: .c${MT}.doj: @echo "Compiling $<";\ $(COMPILER) $(COPTS) -c -o $@ $< .c${MT}.doj: @echo“编译$经过测试,并且运行正常(Linux中的GNU make): .c${MT}.doj: @echo“编译$一个简单的解决方案是使用一个简单的脚本abc,如下所示: #!/bin/

我有一个Makefile,它使用很长的命令行构建了许多C文件,我们通过以下规则清理了输出:

.c${MT}.doj:

        @echo "Compiling $<";\
         $(COMPILER) $(COPTS) -c -o $@ $<
.c${MT}.doj:
@echo“编译$经过测试,并且运行正常(Linux中的GNU make):

.c${MT}.doj:

@echo“编译$一个简单的解决方案是使用一个简单的脚本
abc
,如下所示:

#!/bin/bash

$@
code=$?
if (( code )); then
  echo error running $@
fi
exit $code

然后您可以编写
abc$(COMPILER)$(COPTS)-c-o$@$我最近使用了一个实用程序,用于跟踪bat文件执行过程中发生的输出。如果你想知道在哪里发生了什么错误,你可能会发现这个问题非常有用。

这个问题很老了,但是对于那些在谷歌上搜索的人来说,我想在这种情况下我要做的是在我的shell中使用别名
make
to
make-s
(静默模式),并且仅将
@
前缀放在调用
echo
或其他诊断命令的行之前。当我需要
make
的完整输出时,我将通过调用
\make
覆盖我的别名


还请注意,在这种情况下,您需要执行典型的操作,并将
@echo
放在自己的行中,实际的规则命令放在单独的行中,而不带
@

注意,这种方式使make不再注意到命令失败,并将继续执行,就像它成功一样。也许你可以在结尾加上一个“&&false”来补偿这一点。我需要加上括号,比如:@echo;编译…||(回声…&假)
#!/bin/bash

$@
code=$?
if (( code )); then
  echo error running $@
fi
exit $code