一般に、プロジェクトファイルが多数ある場合、gccツールを使用してコンパイルコマンドを直接入力するのはより面倒なので、makefileを作成する利点が得られます。毎回コンパイルするにはmakeと入力するだけで済みます。
これはユニバーサルバージョンです。現在のディレクトリにいくつのファイルがあっても、makefileを変更せずに、メインの実行可能プログラムを直接生成するだけで作成できます。
以下はメイクファイルです
#クロスコンパイルツールチェーン#CC = arm-linux-gnueabihf-gcc
CC = gcc
#リンクライブラリ
CFLAGS = -lm -lpthread
#c ファイルを取得SrcFiles = $(wildcard * .c)
#置換関数を使用して.oファイルを取得しますOBJS = $(patsubst%.c、%。o、$(SrcFiles))
all:main
main:$(OBJS)
$(CC)-o $ @ $ ^ $(CFLAGS)
%.o:%。c
$(CC)-c $ <$(CFLAGS)
.PHONY:clean all
clean:
rm -rf $(OBJS)
rm -rf main
ここに補足
ワイルドカード機能は
、置換機能を持つ指定されたファイルpatsubst関数を取得することです。
$(Files)、File変数の値を取ります。
$ @ターゲットファイル
$ ^すべての依存
$ <最初の依存
$?最初の依存変更