2017-04-02 8 views
-2

私はメイクファイルを作成したとき、私はgcc '-c'とgcc '-o'の意味は何ですか?

test: main.o 1.o 
    gcc -o test main.o 1.o 

main.o: main.c a.h 
    gcc -c main.c 

1.o: 1.c a.h 
    gcc -c 1.c 

を書いたが、私は二、三行目の最初の行と-cで-oを使用し、なぜ私は得ることはありません。 それらの違いは何ですか?

+2

gccマニュアルをお読みになりましたか? –

+1

ファイルを作成しました。なぜあなたがそれをやったのか、誰が知っていますか? –

+1

あなたは**あなたが**書いたことを説明するために、私たちに**私たちに**求めているのはなぜですか?あなたは**と書いています**は、キーボードの指であることを意味します。なぜあなたはそれを書いたのですか? –

答えて

1

これらのオプションは非常に異なることを行う:

  • -c.oオブジェクトファイルにソースファイルをコンパイルするGCCに指示します。このオプションがなければ、デフォルトでをコンパイルし、のコードを完全な実行可能プログラムにリンクします。このプログラムは、すべての.cファイルを同時に提供する場合にのみ動作します。ファイルを個別にコンパイルして後でリンクできるようにするには、-cが必要です。
  • -oは、GCCが生成する出力ファイルの名前を設定します。オブジェクトファイルをリンクして完全なプログラムを作成するときにこのファイルを使用しています。そのデフォルトの出力ファイル名はa.outです。プログラムをa.outとしたくない場合は、-oを使用して別の名前を指定します。
関連する問題