Ads 468x60px

##EasyReadMore##

15 11月, 2013

如何把make 錯誤訊息獨立出來

image

通常make 時會拌隨著很多的訊息

會找不到錯誤訊息在哪

找到了之後眼睛都脫窗了

因此可用下列指令把錯誤跟編譯訊息分開

make xxx 2> error.txt

再打開 error.txt 看錯誤再哪就好了

說明如下:

 

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

而系統默認的stdin,stdout,stderr,都是屏幕,所以,當你執行命令,比如make,後,所輸出的信息,都是可以在屏幕上看到的。
所以,想要將對應信息輸出到某個文件中,就用對應的數字加上重定向符號'>',實現將這些信息,重新定向到對應的文件中,即可。
(上面這兩句,也是之前太多的人來解釋,但是沒有說明白的地方。)
下面以make命令为例來說明,如何把對應的信息,輸出到對應的文件中:

【用法】
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等數字,後面緊跟着大於號'>' ,中間不能有空格

http://rritw.com/a/caozuoxitong/Linux/20111116/143532.html

0 意見:

張貼留言

 
Blogger Templates