0

我正在使用原始的 makefile 来构建我的代码,其中包含用 makefile 编写的 Perl 脚本。

现在我想将屏幕上显示的所有日志打印到 txt 文件中。

为了做到这一点,我可以在我的 makefile 中使用什么命令?

我打算在makefile中使用一些命令将屏幕上显示的内容输出到txt文件。例如,如果 makefile 看起来像:

all:

  perl filename.pl 

我应该如何在我的makefile中写入,以便每次在命令行中键入“make all”时,它会自动将输出保存到txt文件?

嗨,现在我需要改进它,我需要将输出保存到一个 txt 文件,其目录应该根据我的 perl 脚本的输入。

例如,在生成文件中:

全部:

 $(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 的目录中?Ans 我还想将名称“log”更改为输入,我该怎么做?

任何人都可以帮忙吗?

4

2 回答 2

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

..如果你想在文件中包含标准错误输出,你也可以重定向它:

all:
        perl filename.pl 2>&1 | tee log.txt
于 2013-11-07T01:35:59.967 回答
1

从命令行,将 make 的输出通过管道传输到文本文件应该非常简单:

make > new_file.txt

如果您希望它每次都连接而不是替换,请使用两个箭头:

make >> new_file.txt
于 2013-11-07T01:07:11.810 回答