我使用原始的makefile来使用makefile编写的Perl脚本构建我的代码。
现在我想将屏幕上显示的所有日志打印到txt文件。
为了做到这一点,我可以在makefile中使用什么命令?
我本来打算在makefile中使用一些命令将屏幕上显示的内容输出到txt文件。 例如,如果makefile看起来像:
all:
perl filename.pl
我应该怎么写我的makefile,这样每次在命令行输入“make all”时,它会自动将输出保存到txt文件中?
嗨现在我需要改进它,我需要将输出保存到txt文件,其目录应该根据我的perl脚本的输入。
例如,在makefile中:
所有
$(X)make -C .. DIR=$(DIR) Y=$(Y) Z=$(Z)
perl filename.pl $(DIR)/$(Y)/i.lst 2>&1 | tee log.txt
我应该如何更改makefile,以便将log.txt保存在目录等于输入$ DIR?我还想将名称“log”更改为输入,我该怎么做?
有人可以帮忙吗?
答案 0 :(得分:4)
你可以有一个make规则,以递归方式调用make,将事物重定向到文件:
all:
$(MAKE) everything >log.txt
everything: ...whatever you had before for all
当然,如果您只有一个命令,那么您也可以将重定向放在那里:
all:
perl filename.pl >log.txt
如果您希望输出同时显示在屏幕上并复制到文件中,您可以使用tee
:
all:
perl filename.pl | tee log.txt
..如果你想在文件中包含stderr输出,你也可以重定向:
all:
perl filename.pl 2>&1 | tee log.txt
答案 1 :(得分:1)
从命令行,将make的输出汇总到文本文件应该非常简单:
make > new_file.txt
如果您想要连接而不是每次更换,请使用两个箭头:
make >> new_file.txt