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関数の使用方法を理解するのに役立つことを願います。ご不明な点がございましたら、お気軽にお問い合わせください。

bannerAds