2009-02-23 21 views
5

G ++ derleyici çıktısını (stderr ve stdout) linux üzerindeki bir dosyaya yeniden yönlendiriyorum. Ama boş bir dosya oluşturuyor.linux g ++ derleyici stderr ve stdout yönlendirmesi boş dosya oluşturur

Bazı satırlarda, her satırın ardından stdout'un temizlenmediğini okudum. Thats Tamam, ama ne hakkında stderr. Benim durumumda birkaç ekran çalıştıran derleme hataları var. Yani stderr çıktısı ile ilgileniyorum. Oluşturulan stdout çıkışı yok.

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

Yukarıdaki komut, "output" adında boş bir dosya oluşturur. Aşağıdaki komut geçersiz null komutunu bildirir.

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

Hangi kabuğu kullanıyorsunuz? Yönlendirme yapmazsanız çıktı mı üretilir? –

+0

Bir bash kabuk kullanan bir linux kutusuna bağlanmak için macun kullanıyorum Yeniden yönlendirmenin ana nedeni, birkaç ekran boyunca karşılaşılan derleme hatalarını görmektir. –

cevap

11

biri bash kullanarak olmadığını ihanet . Csh veya tcsh kullanıyorsunuz. Bu durumda, böyle (standart hata dahil) tüm çıktısını yönlendirebilirsiniz: daha csh yönlendirme sözdizimi için

 
g++ -c Algorithms.cpp >& output 

, ben a useful link imi var. Csh yönlendirme sözdiziminin bash sözdizimi kadar akıcı olmadığını unutmayın. Bash içinde csh'de yapabileceğinizden daha fazlasını yapabilirsiniz.

+0

Sizi yanılttığım için üzgünüm. Bu sadece cehaletim yüzünden oldu. Çok teşekkür ederim. –

+1

'bash' kullanıyorum ve bu sözdizimi hala gerekli. –

0

"Hiçbir haber iyi haber değil" - komutunuz herhangi bir çıktı üretiyor mu? Hata olmadığında, g ++ bir şey basmaz!

+0

stderr hakkında endişeliyim. Bir dosyanın derlenmesinin herhangi bir çıktı üretmediğini biliyorum :) –

+0

Oh, haklısın, bunu özledim. Afedersiniz! –

3

Bu deneyebilirsiniz:

sh/bash/zsh sürümü:

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

csh veya tcsh versiyon: Yorumlarınızı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/Algoritmalar.cpp> çıkış 2> & 1 Belirsiz çıktı yönlendirmesi. –

+0

Kabuğunuz bash değil. Bu bir csh hata mesajıdır. –

İlgili konular