makefileでpatsubstを使う方法を教えてください
Makefile において、patsubst 関数とは、一連の文字列中のパターンを置換する機能のことである。
patsubst 関数の構文は次のとおりです。
$(patsubst pattern,replacement,text)
パターンは検索するパターン、置換文字列は置換する文字列、テキストは置換する文字列のグループです。
patsubst関数の使用法の例を示します.
# 将字符串列表中的.c后缀替换为.o后缀
files := foo.c bar.c baz.c
objs := $(patsubst %.c, %.o, $(files))
all: $(objs)
gcc $^ -o myprogram
%.o: %.c
gcc -c $< -o $@
上の例では、まず3つのファイル名を含む文字列リストfilesを定義し、patsubst関数を使用してそれらのファイル名内の.c接尾辞を.o接尾辞に置き換え、objs変数に代入します。次に、allルールで、$(objs)を依存関係として使用して最終的な実行可能プログラムmyprogramをコンパイルして生成します。
なおpatsubst関数では、ワイルドカードとして%を使用しており、任意の長さの文字列を表します。置換処理では、%.cは.cで終わる文字列とマッチし、%はそのマッチした文字列で置き換えられ、.oのサフィックスが追加されます。
この例が patsubst関数の使用方法を理解するのに役立つことを願います。ご不明な点がございましたら、お気軽にお問い合わせください。