1
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行,$(OBJECTS)
創建不依賴於$(SOURCES)
它們在創建的.o使用。爲什麼這條線創建一個循環依賴? (改爲$(TARGET):
而不是,工作正常)