我有很多带有扩展名的文件.cpp
f001.cpp
abc.cpp
...
我尝试用这个编译任何文件
%.cpp:
g++ -o $* $*.cpp
但我明白了
make: *** No hay objetivos. Alto.
我有很多带有扩展名的文件.cpp
f001.cpp
abc.cpp
...
我尝试用这个编译任何文件
%.cpp:
g++ -o $* $*.cpp
但我明白了
make: *** No hay objetivos. Alto.
这行得通吗?
f001.o:
%.o: %.cpp
g++ -o $@ $<
编辑:
好的!现在试试这个:
OBJETIVOS = f001.o abc.o def.o ghi.o
todos: $(OBJETIVOS)
%.o: %.cpp
g++ -o $@ $<
这里有一个问题。通常abc
是可执行的二进制文件,并且abc.o
是目标文件。您正在构建可执行文件,但调用它们abc.o
. 如果您希望它们成为可执行文件,最好将它们称为abc
.
在@Beta 的回答下,我解决了
files = $(basename $(shell ls *cpp))
all: $(files)
%: %.cpp
g++ -o $@ $<
clean:
rm $(files)