2009-02-23 12 views
5

g ++コンパイラの出力(stderrとstdoutの両方)をlinux上のファイルにリダイレクトします。しかし、それは空のファイルを作成しています。linux g ++コンパイラはstderrをリダイレクトし、stdoutは空のファイルを作成します

私は、stdoutがすべての行の後にフラッシュされないという別の記事を読みました。それは大丈夫ですが、stderrはどうですか?私の場合は、いくつかの画面を実行するコンパイルエラーがあります。ですから、私はstderrの出力に興味があります。 stdout出力は作成されません。

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

上記のコマンドは、「出力」という名前の空のファイルを作成します。次のコマンドは無効なヌルコマンドを報告します。

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

あなたはどのシェルを使用していますか?リダイレクトをしないと出力が生成されますか? –

+0

私はbashシェルを使用するLinuxボックスに接続するためにパテを使用しています リダイレクトの主な理由は、いくつかの画面で実行されるコンパイルエラーです。 –

答えて

11

コメントの一つは、あなたbashを使用していないことを裏切るを。あなたはcshまたはtcshを使用しています。その場合、あなたはこのように(標準誤差を含む)すべての出力をリダイレクトすることができます。より多くのcshのリダイレクト構文については

 
g++ -c Algorithms.cpp >& output 

、私はa useful linkがブックマークしています。 cshリダイレクト構文はbash構文ほど流暢ではありません。あなたはcshでできるよりも多くのことをbashで行うことができます。

+0

あなたを誤解して申し訳ありません。それは私の無知によるものです。どうもありがとうございました。 –

+1

私は 'bash'を使用していますが、この構文はまだ必要です。 –

0

「いいニュースは良いニュースです」 - あなたのコマンドは出力を生成しますか?エラーがなければ、g ++は何も出力しません!

+0

私はstderrを心配しています。私はファイルのコンパイルが出力を生成しないことを知っています:) –

+0

ああ、そうです、私はそれを逃した。ごめんなさい! –

3

あなたはこの試みる場合があります:

SH/bashを/ zshのバージョン:

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

cshまたはtcshのバージョン:

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>出力2>&1 あいまいな出力リダイレクト。 –

+0

あなたのシェルはbashではありません。これはcshエラーメッセージです。 –