web-dev-qa-db-ja.com

Makefileターゲット `.c.o`は何のためのものですか?

最近誰かがターゲットに言及しました.c.o Makefilesで相互互換性を保つためですが、その目的を理解できません。誰でも明確にできますか?

30
chacham15

昔ながらのサフィックスルール です。それを行うためのより最新の方法は、 パターンルール を使用することです:

%.o : %.c
33
Carl Norum

これは、.cファイル、つまりCモジュールを.oオブジェクトファイルに変換するための定型ルールです。これは存在するため、このルールを自分で作成する必要はなく、CC(使用するCコンパイラ)、CFLAGS(コンパイラフラグ)などのMake変数によってパラメータ化されます。

したがって、この暗黙のルールを使用してCモジュールをコンパイルし、Make変数をいじらない場合、コードを構築する人は、Makefileを編集せずにコマンドラインでコンパイラとフラグを指定できます。

2
Fred Foo