2016-05-17 32 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。

相關問題