【Linux】-makefile

1. makefileとは

大規模なプロジェクトでは、プロジェクト内のソースファイルはカウントされません。これらは、タイプ、関数、およびモジュールごとにいくつかのディレクトリに配置されます。makefileは、最初にコンパイルする必要があるファイルと後でコンパイルする必要があるファイルを指定する一連のルールを定義します。 、より複雑な機能操作のために、どのファイルを再コンパイルする必要があるか。

一般的な理解は、WindowsのIDEに似ています。

次に、makefileの利点とmakeコマンド

makefileの利点は「自動コンパイル」です。一度作成すると、makeコマンドが1つだけ必要です。プロジェクト全体が完全に自動的にコンパイルされ、ソフトウェア開発の効率が大幅に向上します。

たとえば、プロジェクトには8つのCファイルと3つのヘッダーファイルがあります。Makefileを作成して、makeコマンドにこれらのファイルをコンパイルおよびリンクする方法を指示する必要があります。私たちのルールは:

  1. このプロジェクトがコンパイルされていない場合は、すべてのCファイルをコンパイルしてリンクする必要があります。
  2. このプロジェクトの一部のCファイルが変更されている場合、変更されたCファイルのみをコンパイルし、ターゲットプログラムをリンクします
  3. このプロジェクトのヘッダーファイルが変更された場合、これらのヘッダーファイルを参照するCファイルをコンパイルし、ターゲットプログラムをリンクする必要があります。

3、makefileコンテンツ

その動作原理を説明するために、最初にファイルのコンパイルに使用した方法について説明します。
まず、同じフォルダに複数の.cファイルと.hファイルを作成します。次のように:
ここに画像の説明を挿入
通常、ファイルをコンパイルするとき
ここに画像の説明を挿入
次の方法で.cファイルを1つずつ書き込みますが、ファイルが多すぎる場合はどうなりますか?また、コンパイル後にsub.cファイルを再度変更してから再コンパイルした場合、次の図に示すように、sub.cファイルのみをコンパイルすると、これは誤り
ここに画像の説明を挿入
です。すべての.cファイルを再度配置する必要があります。再度コンパイルするのが正しいです。このように、ファイルをコンパイルする不適切な方法があるようです。ここでは、makefileを紹介します。デフォルトモードでは、makeコマンドを入力することによってのみ、すべての.cファイルをコンパイルできます。 。

1. makefileの基本的な書き込み

メインの実行可能ファイルは1つだけ生成されます。makefileの基本的な内容は次のとおりです:
ここに画像の説明を挿入
mainの後にmainが依存するために実行するファイルが続き、依存する各.oファイルを生成するプロセスが続きます。そして前の空いた部分がタブキーです。
makeを入力したら、次のように接続プロセスを完了します
ここに画像の説明を挿入
make clean操作は主に.oファイルと内部のメインを削除することです。効果は次のとおりです。
ここに画像の説明を挿入
この時点でrun.cファイルを追加して、2つのメイン実行ファイルを実行すると、makefileファイルの基本的な内容は次のようになります。 :
ここに画像の説明を挿入
makeの後に生成されるファイルの内容は次のとおりです。
ここに画像の説明を挿入
次に、2つの実行可能ファイルを実行します。
ここに画像の説明を挿入

2. makefileの最適化

1.
make GUNの暗黙的な派生は非常に強力であり、ファイルとファイルの依存関係の背後にあるコマンドを自動的に推定できるため、各.oファイルの後に同様のコマンドを記述する必要はありません
。2. CC環境変数コンパイラー・ツールの指定
CCを変更することでコンパイラーを指定
ここに画像の説明を挿入
できるため、次のようにmakefileを更新できます。さらに、マクロと同様の方法で、ラベルに続く依存関係ファイルを置き換えることができます。makefileファイルは、次のようにさらに改善されています。
ここに画像の説明を挿入
3. VPATH環境変数は検索パスを指定します。
最後に実行可能ファイルのみが必要であり、途中の.oファイルは不要であることにも注意してください。
最終的に最適化されたバージョンは次のとおりです。
ここに画像の説明を挿入

公開された98元の記事 ウォンの賞賛9 ビュー3652

おすすめ

転載: blog.csdn.net/qq_43412060/article/details/105365712