Makefile を作成して、ディレクトリ内のすべての .c ファイルを実行可能ファイルにコンパイルします。

Makefile を作成するプロセスは次のとおりです。

  1. 変数の定義: コンパイラやコンパイル オプションなどの変数を定義します。
  2. ターゲットファイルの定義: ターゲットファイル名を定義します。
  3. ソース ファイルの定義: すべてのソース ファイルを定義します。
  4. ルールの定義: 各ソース ファイルをオブジェクト ファイルにコンパイルするためのルールを定義します。
  5. 擬似ターゲットの定義: オブジェクト ファイルおよびその他の中間ファイルをクリーンアップする擬似ターゲットを定義します。

CC = gcc
CFLAGS = -Wall -Wextra -Werror

SOURCES := $(wildcard *.c)
TARGETS := $(patsubst %.c, %, $(SOURCES))

all: $(TARGETS)

%: %.c
	$(CC) $(CFLAGS) $< -o $@

.PHONY: clean
clean:
	rm -f $(TARGETS)
  • CC 使用するコンパイラを定義します。ここでは gcc が使用されます。
  • CFLAGS コンパイル オプションが定義され、いくつかの警告オプションがここで有効になります。
  • SOURCES すべてのソース ファイルのリストです。ワイルドカードを使用して、現在のディレクトリ内で で終わる*.cすべてのファイルを検索します。 .c
  • TARGETSすべての実行可能ファイルのリストです。patsubst 関数を使用して、ソース ファイル パスを実行可能ファイル パス (ファイル拡張子を削除したもの) に置き換えます。
  • all: $(TARGETS)すべてがすべての実行可能ファイルに依存し、すべての実行可能ファイルはコマンド ラインに入力することで生成できることを示します。 $ make
  • %: %.c ルールを示し、.c ファイルを対応する実行可能ファイルにコンパイルし、ソース ファイルと同じ名前のファイルに保存します。
  • .PHONY: cleanclean が実際のファイルではなく疑似ターゲットであり、$ make cleanコマンド ラインに入力することですべての実行可能ファイルを削除できることを示します。

おすすめ

転載: blog.csdn.net/FLM19990626/article/details/130983496