-c
でフラグが何をするか知っている人はいgcc
ますか?
たとえば、次の違いは何ですか
gcc -c output0.c
vs gcc output0.c
2番目のファイルがファイルを作成することは知っていますが、ファイルが.a
何であるかはわかりません.a
。
また、何をし-o
ますか
gcc output0.o -o output0
出力ファイルに正しい名前を付けるだけですか?
-c
ソースファイルをコンパイルまたはアセンブルしますが、リンクしないでください。リンク段階は単純に行われていません。最終的な出力は、各ソースファイルのオブジェクトファイルの形式になります。
デフォルトでは、ソースファイルのオブジェクトファイル名は、接尾辞.c、.i、.sなどを.oに置き換えることによって作成されます。コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。
-oファイル
出力をファイルファイルに配置します。これは、実行可能ファイル、オブジェクトファイル、アセンブラファイル、または前処理されたCコードなど、生成される出力の種類に関係なく適用されます。-oが指定されていない場合、デフォルトでは、実行可能ファイルはa.outに、source.suffixのオブジェクトファイルはsource.oに、そのアセンブラーファイルはsource.sに、プリコンパイル済みヘッダーファイルはsource.suffix.gchに配置されます。 、および標準出力のすべての前処理されたCソース。
詳細については、GCCのマニュアルページを参照してください。
からman gcc
:
...
-c ソース ファイルをコンパイルまたはアセンブルしますが、リンクしません。リンク段階は単に完了していません。最終的な出力は、各ソース ファイルのオブジェクト ファイルの形式です。
デフォルトでは、ソース ファイルのオブジェクト ファイル名は、接尾辞 .c、.i、.s などを .o に置き換えて作成されます。
コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。
...
-c は、ソース ファイルを .o (オブジェクト) ファイルにコンパイルするだけで、リンカーを呼び出さないように gcc に指示します。
多くの .c ファイルを含むプロジェクトでは、通常、最初にすべての .c ファイルを .o ファイルにコンパイルしてから、すべてをライブラリと一緒にリンクします。
-c
ソース ファイルをコンパイルまたはアセンブルしますが、リンクは行わないでください。リンク段階は単に完了していません。最終的な出力は、各ソース ファイルのオブジェクト ファイルの形式です。
デフォルトでは、ソース ファイルのオブジェクト ファイル名は、接尾辞 >.c、.i、.s などを .o に置き換えて作成されます。
コンパイルやアセンブリを必要としない、認識されない入力ファイルは無視されます。