1

我有很多带有扩展名的文件.cpp

f001.cpp
abc.cpp
...

我尝试用这个编译任何文件

%.cpp:
        g++ -o $* $*.cpp

但我明白了

make: *** No hay objetivos.  Alto.
4

2 回答 2

1

这行得通吗?

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.

于 2012-09-14T23:43:07.473 回答
1

在@Beta 的回答下,我解决了

files = $(basename $(shell ls *cpp))                                                     

all: $(files)                                                                            

%: %.cpp                                                                                 
    g++ -o $@ $<                                                                

clean:                                                                                   
    rm $(files) 

https://gist.github.com/3726212

于 2012-09-15T03:15:15.850 回答