2016-08-11 5 views
0

のための再帰的なメイクファイルを定義すると言う(適切な方法は、私はこのようなプロジェクトを持っているサブフォルダ

all: main.o tests/test1.o tests/test2.o tests/test3.o 
     gcc -o main main.o tests/test1.o tests/test2.o tests3.o 

%.o: %.c test.h 
     gcc -c $< -o [email protected] 

をしかし、私はそれが繰り返しだと感じるならばIメインに複数のディレクトリがあります)。再帰的make定義を使ってこれを行うより良い方法はありますか?

私は初心者です。私はさまざまな方法を模索したがっています。

答えて

0

再帰的に何を意味するのかわかりませんが、すべてのtestx.oとtestx.cを2つのリストに入れます(実際にはデフォルトのルールは.cファイルをすべてピックアップして.oファイルにコンパイルします)。おそらく仕事をする:

OBJECTS=tests/test1.o tests/test2.o tests/test3.o ... 
SOURCES=test1.c test2.c test3.c ... 

all: main 
main: main.o $(OBJECTS) 
    gcc -o [email protected] $(OBJECTS) 
%.o: %.c test.h 
    gcc -c $< -o [email protected] 
関連する問題