1. ホーム
  2. makefile

[解決済み] makefileの "all "は何の略ですか?

2022-03-02 18:35:19

質問

Makefile に関するチュートリアルをいくつか読みましたが、私にはターゲット "all" が何を意味し、何を行うのかがまだ不明です。

何かアイデアはありますか?

解決方法は?

Makefile が理解するビルドは、多くのターゲットで構成されています。 たとえば、あるプロジェクトをビルドするためには、次のようなものが必要です。

  1. file1.cからfile1.oをビルドする。
  2. file2.cからfile2.oをビルドする。
  3. file3.cからfile3.oをビルドする。
  4. file1.oとfile3.oから実行ファイル1をビルドする。
  5. file2.oから実行ファイル2をビルドする。

このワークフローをmakefileで実装した場合、それぞれのターゲットを別々に作ることができます。 例えば、次のように書くと

make file1.o

は、必要であればそのファイルだけをビルドします。

の名前は all は固定ではありません。 あくまで従来の名前です。 all ターゲットは を呼び出すと、make は すべて 完全なビルドを行うために必要なもの . これは通常ダミーターゲットで、何もファイルを作成せず、単に他のファイルに依存するものです。 上の例では すべて は実行可能ファイルの構築であり、他のファイルは依存ファイルとして取り込まれる。 ですから、makefileの中では次のようになっています。

all: executable1 executable2

all ターゲットは通常、makefile の最初に記述されます。 make を指定しない場合、最初のターゲットがビルドされます。 そして、あなたはそれが all .

all は、通常も .PHONY ターゲットになります。 詳細はこちら こちら .