Makefile 通配符依赖项

Makefile wildcard dependencies

我想使用通配符将所有 .cpp 和 .cc 文件包含在目标的依赖项中。

目前,我必须执行以下操作:

all: main.cpp file1.cc file2.cc
    g++ -O3 -o all main.cpp file1.cc file2.cc -I./include -L./lib

以下似乎不起作用:

all: %.cpp %.cc
    g++ -O3 -o $@ $^ -I./include -L./lib

我收到错误 make: *** 没有规则来创建 'all' 需要的目标“%.cc”。停止。

targets := $(wildcard *.cpp) $(wildcard *.cc)
all: $(targets)
        g++ $(targets)

这对我有用

“%”表示隐式模式规则,“*”为通配符

targets := $(wildcard *.cpp *.c)
all: $(targets)
    g++ $(targets)