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 $@ $<

ここで 1 つの問題があります。通常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 に答える