Makefile通配符依赖项

时间:2015-02-06 05:10:48

标签: c++ makefile

我想使用通配符将所有.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

我收到错误消息:***没有规定制作目标'%。cc',需要全部'。停止。

2 个答案:

答案 0 :(得分:6)

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

这对我有用

答案 1 :(得分:1)

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

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