のメイクファイルで
1 SHELL=/bin/zsh
2 CC=g++
3
4 TARGET = target/jj
5 SOURCES = $(shell echo src/*.cpp)
6 HEADERS = $(shell echo include/*.h)
7 OBJECTS = $(SOURCES:.c=.o)
8 FLAGS = -Wall -c
9
10 all: $(TARGET)
11
12 # Create final executable from .o
13 $(TARGET): $(OBJECTS)
14 $(CC) $(OBJECTS)
15
16 # Create .o from .cpp
17 $(OBJECTS): $(SOURCES) # <------------------------------
18 $(CC) $(FLAGS) -c $(SOURCES)
19
20 # Remove objects
21 clean:
22 rm -rf $(OBJECTS)
したがって、17 行目では、作成は.o 作成で使用されるもの$(OBJECTS)
に依存します。$(SOURCES)
この行が循環依存関係を作成するのはなぜですか? (行を$(TARGET):
代わりに変更すると、正常に動作します)