14

-cでフラグが何をするか知っている人はいgccますか?

たとえば、次の違いは何ですか

gcc -c output0.c
vs gcc output0.c

2番目のファイルがファイルを作成することは知っていますが、ファイルが.a何であるかはわかりません.a

また、何をし-oますか

gcc output0.o -o output0

出力ファイルに正しい名前を付けるだけですか?

4

3 に答える 3

14

-c

ソースファイルをコンパイルまたはアセンブルしますが、リンクしないでください。リンク段階は単純に行われていません。最終的な出力は、各ソースファイルのオブジェクトファイルの形式になります。

デフォルトでは、ソースファイルのオブジェクトファイル名は、接尾辞.c、.i、.sなどを.oに置き換えることによって作成されます。コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。

-oファイル

出力をファイルファイルに配置します。これは、実行可能ファイル、オブジェクトファイル、アセンブラファイル、または前処理されたCコードなど、生成される出力の種類に関係なく適用されます。-oが指定されていない場合、デフォルトでは、実行可能ファイルはa.outに、source.suffixのオブジェクトファイルはsource.oに、そのアセンブラーファイルはsource.sに、プリコンパイル済みヘッダーファイルはsource.suffix.gchに配置されます。 、および標準出力のすべての前処理されたCソース。

詳細については、GCCのマニュアルページを参照してください。

于 2013-02-06T08:15:52.473 に答える
4

からman gcc:

...

-c ソース ファイルをコンパイルまたはアセンブルしますが、リンクしません。リンク段階は単に完了していません。最終的な出力は、各ソース ファイルのオブジェクト ファイルの形式です。

デフォルトでは、ソース ファイルのオブジェクト ファイル名は、接尾辞 .c、.i、.s などを .o に置き換えて作成されます。

コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。

...

于 2013-02-06T08:14:27.717 に答える
3

-c は、ソース ファイルを .o (オブジェクト) ファイルにコンパイルするだけで、リンカーを呼び出さないように gcc に指示します。

多くの .c ファイルを含むプロジェクトでは、通常、最初にすべての .c ファイルを .o ファイルにコンパイルしてから、すべてをライブラリと一緒にリンクします。

-c

ソース ファイルをコンパイルまたはアセンブルしますが、リンクは行わないでください。リンク段階は単に完了していません。最終的な出力は、各ソース ファイルのオブジェクト ファイルの形式です。

デフォルトでは、ソース ファイルのオブジェクト ファイル名は、接尾辞 >.c、.i、.s などを .o に置き換えて作成されます。

コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。

ソース

于 2013-02-06T08:16:42.080 に答える