1

名前に.cサフィックスが付いているすべてのファイルを選択するために、Makefileでワイルドカードを使用するために使用します。それはそのように見えますSRCS := $(wildcard *.c)。Makefileの他の部分でSRCS使用されます。

ここで行う必要があるのは、特定のファイルがSRCS変数に含まれないようにすることです。私が見つけた方法は、シェルディレクティブをいくつかのコンソールコマンドと組み合わせることです。SRC :=$(shell find . -name "*.c" | grep -v "file_to_exclude.c" | xargs)

それは問題なく機能しますが、ワイルドカードのみを使用する方法よりもエレガントな方法があるかどうかを知りたいと思います。

4

1 に答える 1

7

$(filter-out P、T)コマンドを使用できます...

SRCS := $(filter-out icky-file.c,$(wildcard *.c))

もちろん、シェルスクリプトを使用することは、Makeのコマンドに制約されないため、物事を別のレベルに引き上げることになります。

欲しくないものをたくさん手に入れましたか?

NOWANTS := one.c two.c three.c
SRCS := $(filter-out $(NOWANTS),$(wildcard *.c))
于 2012-07-02T10:41:38.497 に答える