1.文字列関数の形式
関数呼び出しの形式は次のとおりです。
$(<function> <arguments>)
または
${<function> <arguments>}
その中で、
function
関数名です。arguments
関数のパラメーターであり、パラメーターはコンマで区切る必要があります。
パラメータと関数名はスペースで区切られます。
関数を呼び出すときは、文字を使用し$
、その後に括弧または中括弧を使用します。
2.パターン文字列置換関数patsubst
関数の形式は次のとおりです。
$(patsubst <pattern>,<replacement>,<text>)
関数の説明:関数関数はtext
、コンプライアンスモードpattern
で単語を検索し、一致する場合はreplacement
置換を検索します。戻り値は、置換後の新しい文字列です。例:
OBJ=$(patsubst %.cpp, %.o, 11.cpp 22.cpp 33.cpp)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/ifeq$ make
echo 11.o 22.o 33.o
11.o 22.o 33.o
wohu@ubuntu:~/cpp/ifeq$
3.文字列置換関数subst
関数の形式は次のとおりです。
$(subst <from>,<to>,<text>)
関数の説明:この関数は、form
置き換えられた文字列をクリアし、置き換えられた文字列to
の新しい値を返します。例:
OBJ=$(subst oo,ss, faoo fcoo )
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo fass fcss
fass fcss
wohu@ubuntu:~/cpp/func$
4.スペース機能ストリップを取り外します
関数の形式は次のとおりです。
$(strip <string>)
関数の説明:関数の機能は、文字列の最初と最後の文字列を削除し、複数の連続するスペースを1つのスペースにマージすることです。戻り値は、スペースが削除された文字列です。例:
OBJ=$(strip a b c )
all:
echo $(OBJ)
makeコマンドを実行した後
wohu@ubuntu:~/cpp/func$ make
echo a b c
a b c
wohu@ubuntu:~/cpp/func$
5.文字列の検索関数findstring
関数の形式は次のとおりです。
$(findstring <find>,<in>)
関数の説明:関数関数は、ターゲット文字列の存在を検索する場合in
にfind
、に配置することです。戻り値はターゲット文字列であり、存在しない場合は空です。例:
OBJ=$(findstring is, it is dog)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo is
is
wohu@ubuntu:~/cpp/func$
6.フィルター機能フィルター
関数の形式は次のとおりです。
$(filter <pattern>,<text>)
機能説明:フィルターオフ機能は、text
パターンpattern
ストリングに準拠した機能であり、複数存在する場合がありますpattern
。戻り値はフィルタリングされた文字列です。例:
OBJ=$(filter %.cpp %.o, a.cpp b.o c.txt)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo a.cpp b.o
a.cpp b.o
wohu@ubuntu:~/cpp/func$
7.フィルター防止機能のフィルターアウト
関数の形式は次のとおりです。
$(filter-out <pattern>,<text>)
関数の説明:関数は関数関数であり、filter
関数は正反対ですが、使用法は同じです。
pattern
文字列に沿った削除モード、予約に一致する文字列。戻り値は予約文字列です。例:
OBJ=$(filter-out %.cpp %.o, a.cpp b.o c.txt)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo c.txt
c.txt
wohu@ubuntu:~/cpp/func$
8.ソート関数sort
関数の形式は次のとおりです。
$(sort <list>)
関数の説明:関数はlist
、ソートされた(昇順)機能語です。戻り値はソートされた文字列です。例:
OBJ=$(sort z, y, y, x)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo x y, z,
x y, z,
wohu@ubuntu:~/cpp/func$
sortは、重複する文字列を削除します。
9.単語機能語を取る
関数の形式は次のとおりです。
$(word <n>,<text>)
関数の説明:関数関数はtext
、最初のn
単語で抽出された関数です。最初のn
単語を削除した戻り値。例:
OBJ=$(word 3, a.cpp, b.cpp, c.cpp)
all:
echo $(OBJ)
make
コマンドを実行し、
wohu@ubuntu:~/cpp/func$ make
echo c.cpp
c.cpp
wohu@ubuntu:~/cpp/func$