Linux系统中保存make编译时的信息

在Linux系统中,经常会使用到make命令进行编译,而且编译的时间往往会比较长,并且会超过Shell查看的范围,为了便于查看编译的情况并进行分析,我们可以将终端上的编译信息保存到文件中。 


举例说明保存编译信息的行命令,它把make过程中打印的所有信息都保存在xxx.log中。
$make 2>&1|tee ./xxx.log

其中,

0 标准输入  stdin = standard input
1 标准输出  stdout = standard output
2 标准错误输出  stderr = standard error

这条命令是编译并保存打印信息。在Linux Shell的设备定义中,“0”表示标准输入,“1”表示标准输出,“2”表示标准出错信息输出。2>&1表示把2设备的信息重定向到1设备;“|”是管道符号,把标准输出的信息直接传递给后面的命令;tee是创建文件并保存信息的工具;xxx.log是文件名。
这种管道的用法在Linux Shell命令中使用非常普遍。编译过程中都可以使用这个方法,生成日志文件,保存到buildlogs目录下。

【总结】

下面三种方法, 都可以将make编译的所有信息重定向至文件中:

方法一 make 2>&1 | tee error.txt

方法二 make > error.txt 2>&1

方法三 make 2> error.txt


其他方法:

1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是:
make xxx > build_output.txt
此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。
2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用:
make xxx 2> build_output.txt
相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。
3.只需要把make输出中的正常(非错误,非警告)的信息输出到文件中,可以用:
make xxx 1> build_output.txt
相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。
4.想要把正常输出信息和错误信息输出到分别的文件中,可以用:
make xxx 1> build_output_normal.txt 2>build_output_error.txt
即联合使用了1和2,正常信息和错误信息,都输出到对应文件中了。
5. 所有的信息都输出到同一个文件中:
make xxx > build_output_all.txt 2>&1
其中的2>&1表示错误信息输出到&1中,而&1,指的是前面的那个文件:build_output_all.txt 。
注意:上面所有的1,2等数字,后面紧跟着大于号'>' ,中间不能有空格 

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值