2009-02-23 30 views
5

Tôi đang chuyển hướng đầu ra trình biên dịch g ++ (cả stderr và stdout) sang tệp trên linux. Nhưng nó đang tạo một tập tin trống.linux g ++ trình biên dịch chuyển hướng stderr và stdout tạo tệp trống

Tôi đọc trong một số bài đăng khác mà stdout không bị xóa sau mỗi dòng. Thats ok, nhưng những gì về stderr. Trong trường hợp của tôi có lỗi biên dịch chạy một số màn hình. Vì vậy, tôi quan tâm đến đầu ra stderr. Không có đầu ra stdout nào được tạo ra.

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I 
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp 2> output 

Lệnh trên tạo tệp trống có tên "đầu ra". Lệnh sau báo cáo lệnh null không hợp lệ.

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I  
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp &> output 
Invalid null command. 
+0

Bạn đang sử dụng trình bao nào? Và đầu ra có được tạo ra khi bạn không thực hiện chuyển hướng không? –

+0

Tôi đang sử dụng putty để kết nối với một hộp linux sử dụng bash shell Lý do chính để chuyển hướng là xem các lỗi biên dịch chạy trên nhiều màn hình. –

Trả lời

11

Một trong những ý kiến ​​của bạn phản bội mà bạn không sử dụng bash . Bạn đang sử dụng csh hoặc tcsh. Trong trường hợp đó, bạn có thể chuyển hướng tất cả đầu ra (bao gồm sai số chuẩn) như thế này:

 
g++ -c Algorithms.cpp >& output 

Đối với cú pháp chuyển hướng csh hơn, tôi có a useful link đánh dấu. Lưu ý rằng cú pháp chuyển hướng csh không thành thạo như cú pháp bash. Bạn có thể làm nhiều hơn trong bash hơn bạn có thể trong csh.

+0

tôi xin lỗi vì đã gây hiểu lầm cho bạn. Đó chỉ là do sự thiếu hiểu biết của tôi. Cảm ơn nhiều. –

+1

Tôi đang sử dụng 'bash' và cú pháp này vẫn cần thiết. –

0

"Không có tin tức là tin tốt" - lệnh của bạn có tạo ra bất kỳ đầu ra nào không? Khi không có lỗi, g ++ sẽ không in ra bất cứ thứ gì!

+0

tôi quan tâm đến stderr. tôi biết rằng biên dịch của một tập tin doesnt sản xuất bất kỳ đầu ra :) –

+0

Oh, bạn là đúng, tôi bỏ lỡ điều đó. Lấy làm tiếc! –

3

Bạn có thể thử này:

sh/bash/zsh phiên bản:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp > output 2>&1 

csh hoặc tcsh phiên bản:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp >& output 
+0

g ++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/-I ~/cplusplus/niVxWorksDeliver/TEES/Algorithms.cpp> đầu ra 2> & 1 Chuyển hướng đầu ra mơ hồ. –

+0

Vỏ của bạn không bị bash. Đó là một thông báo lỗi csh. –

Các vấn đề liên quan