Makefile:リストから前提条件を作成する

Makefile:リストから前提条件を作成する

Makefileで1:1の依存関係を生成する一般的な方法はを使用することです%

%o:%cc

.cc50個のファイルがあり、そのうち3個だけに興味があるとしましょう。私は彼らの基本的な名前のリストを作成しました。

CC_BASENAMES := Source15 Source32 Source41

.oを繰り返す方法の$(CC_BASENAMES)効果は次のとおりです。

Source15.o: Source15.cc

Source32.o: Source32.cc

Source41.o: Source41.cc

ベストアンサー1

何を求めるのかはわかりませんが、文字列を操作する簡単な方法がいくつかあります。

.oたとえば、各デフォルト名にサフィックスを追加できますOBJS = $(addsuffix .o,$(CC_BASENAMES))

たとえば、あるサフィックスを別のサフィックスに変換できます$(OBJS:.o=.cc)。たとえば、必要なものはMakefileです。

CC_BASENAMES := Source15 Source32 Source41
OBJS = $(addsuffix .o,$(CC_BASENAMES))
SRCS = $(OBJS:.o=.cc)

fred.o: $(SRCS)
        cc $(SRCS) -o fred.o

あるいは、より一般的には、まずSRCSを定義し、そこからOBJSを派生させます。


依存関係ルールを特定のターゲットにのみ適用するには、次を使用できます。ターゲット:ターゲットモード:前提条件モードつまり

$(OBJS): %.o: %.cc

バラより誰が作った

おすすめ記事