Makefile-rules
提供:Dev Guides
Makefileでのルールの定義
Makefileのルールを学習します。
Makefileターゲットルールの一般的な構文は次のとおりです-
上記のコードでは、括弧内の引数はオプションであり、省略記号は1つ以上を意味します。 ここで、各コマンドの前にタブが必要なことに注意してください。
以下に、他の3つのファイルからターゲットを作成するルールを定義する簡単な例を示します。
注-この例では、ソースファイルからすべてのオブジェクトファイルを作成するルールを指定する必要があります。
セマンティクスは非常に単純です。 「ターゲットを作る」と言うと、 make は適用されるターゲットルールを見つけます。そして、依存関係のいずれかがターゲットよりも新しい場合、 make はコマンドを一度に1つずつ実行します(マクロ置換後)。 依存関係を作成する必要がある場合は、最初に依存関係が発生します(したがって、再帰が発生します)。
人々は、Makefileの特定のターゲットを期待するようになりました。 常に最初に参照する必要があります。 ただし、ターゲットall(またはmakeのみ)、install、およびcleanが検出されることを期待するのは合理的です。
- make all -アプリケーションをインストールする前にローカルテストを実行できるように、すべてをコンパイルします。
- make install -アプリケーションを適切な場所にインストールします。
- make clean -アプリケーションをクリーンアップし、実行可能ファイル、一時ファイル、オブジェクトファイルなどを取り除きます。
Makefileの暗黙のルール
このコマンドは、ソースコードx.cppから実行可能ファイルxをビルドするすべての場合に機能するはずです。 これは暗黙のルールとして述べることができます-
この暗黙のルールは、x.cからxを作成する方法を示しています。x.cでccを実行し、出力xを呼び出します。 特定のターゲットが言及されていないため、ルールは暗黙的です。 すべての場合に使用できます。
もう1つの一般的な暗黙のルールは、.cpp(ソースファイル)から.o(オブジェクト)ファイルを作成することです。