2015年5月6日 星期三

如何把make時的錯誤訊息輸出到檔案

寫程式編譯的時候,有時候錯誤訊息很多

想要把所有的錯誤訊息都輸出到一個檔案,可以用下面的指令來實現~

make 2> error_msg

數字 含義 標准叫法
0 標准輸入  stdin(standard input )
1 標准輸出  stdout(standard output )
2 標准錯誤輸出  stderr(standard error)

而只下make,系統預設的是會把這三種訊息stdin、stdout、stderr都印到螢幕上。

想要將對應的信息輸出到某個檔案中,就用對應的數字加上重定向符號'>'來輸出到文件中。

下面是幾個範例:

1.想要把make輸出的全部信息,輸出到某個文件中,最常見的辦法就是:
make > error_msg 

此時預設情況是沒有改變2=stderr的輸出方式,還是輸出到螢幕,所以,如果有錯誤訊息,還是可以在螢幕上看到。


2.想要把make輸出中的錯誤與警告訊息輸出到檔案,可以使用:
make 2> error_msg

由於1=stdout沒有變,還是輸出到螢幕,所以,那些命令執行時候輸出的正常訊息,你還是可以在螢幕上看到。


3.只需要把make輸出中的正常的信息輸出到文件中(例如要看Makefile作了哪些編譯動作),可以用:
make 1> build_msg

由於2=stder沒有變,還是輸出到螢幕,所以,那些命令執行時候輸出的錯誤信息,你還是可以在螢幕上看到的。


4.想要把正常輸出信息和錯誤信息輸出到分別的文件中,可以用:
make 1> build_msg 2>error.msg 


5. 所有的信息都輸出到同一個文件中:
make > build_all_msg 2>&1 

其中的2>&1表示錯誤信息輸出到&1中,而&1,指的是前面的那個文件:build_all_msg 。

注意:上面所有的1,2等數字,後面緊跟着大於符號'>' ,中間不能有空格


沒有留言:

張貼留言