2016-05-17 91 views
0

)我使用$(info在输出上写入内容,然后检查是否有恐怖现象,然后使用$(错误。在输出中看到的是,如果多个$(info函数用于$(错误输出并不总是在最后,有时甚至是在中间),这取决于make过程的速度有多快,可以等到所有$ (信息将被处理

Exmaple: 
$(info a) 
$(info a) 
$(info a) 
$(info a) 
$(error ERROR) 

Output 1: 
a 
a 
a 
a 
ERROR 

Output 2: 
a 
a 
ERROR 
a 
a 

回答

2

info输出到stdout,并error输出到stderr默认情况下,标准输出缓冲和标准错误是无缓冲;?。这就是为什么他们表现出了不同的你不说什么版本的GNU让你使用,但如果你升级到更新的版本,那么我相信它会在每次写入之后刷新stdout和stderr,所以你不应该再看到这个问题(我相信从GNU make 4.0开始)。

或者,您可以使用像stdbuf这样的工具,它可能已经安装在您的系统上,如果它是GNU/Linux系统的话,可以运行GNU make。