2011-12-16 11 views
3

私は、2つのファイル:main.cppsomething.cppで構成される非常に小さなC++プログラムを持っています。 OS Xターミナルでg++を使って自分のプログラムをコンパイルしたいと思います。ここで私が試したものです:g ++を実行するときに-oを使用する必要がありますか?

> g++ main.cpp something.cpp 
> ./a.out 

は、この正しいですか?私は-oフラグを使用する例を見てきました。それが必要かどうかは分かりません。

+2

'g ++ main.cpp something.cpp -o executable'のような-oを追加すると、カレントディレクトリに* executable *という名前のコンパイルされた実行可能ファイルが作成されます。 -oフラグを省略すると、g ++はプリセット・ファイル名* a.out * –

+2

に出力します。必要であるかどうかを自分で判断しようとしたときに、そのオプションに関するドキュメントのどの部分を理解できなかったかを記述してください。現在のドキュメンテーションの何が間違っているかを理解することなく、改善することは期待できません。 –

+1

しかし、 'a.out'プログラム名を使うことは、今日は貧しい人々の味です。 15年前、 'a.out'はELFで置き換えられた実行可能なバイナリのファイル形式でした。 –

答えて

3

-oオプションは必要ありません。指定されていない場合、デフォルトの動作は "a.out"に実行可能ファイルを置くことです:

-oファイル 出力をファイルに配置します。これは、実行可能な ファイル、オブジェクトファイル、アセンブラ ファイル、または前処理されたCコードのいずれであっても、生成される出力の種類に関係なく適用されます。 -oが指定されていない場合

は、デフォルトでは、source.sで、source.oにsource.suffixため、a.outの中に プリコンパイルヘッダファイルをその アセンブラファイルをオブジェクトファイルを実行可能ファイルを置くことですsource.suffix.gchにあり、すべての前処理されたCソースが標準出力にあります。

はい、これは正しいです。

4

動作しますか?それは正当性を示す良い指標です! -oフラグを使用すると、ファイル名を指定して実行可能ファイル名を指定することができません。a.out

関連する問題