我想使用通配符将所有.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',需要全部'。停止。
答案 0 :(得分:6)
targets := $(wildcard *.cpp) $(wildcard *.cc)
all: $(targets)
g++ $(targets)
这对我有用
答案 1 :(得分:1)
“%”表示隐式模式规则,“*”表示通配符。
targets := $(wildcard *.cpp *.c)
all: $(targets)
g++ $(targets)