Wiele dwukropków i znak równości w makefile (potrzebujesz wyjaśnienia)
To tylko segment pliku makefile. Nie do końca rozumiem, co się dzieje.
OBJS = $(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o)
$(OBJS):$(OBJ)/%.o: $(SRC)/%.cpp | print-opts
$(cc-command)
Rozumiem tylko, że te linie kompilują pliki .cpp do .o, po „print-opts”, za pomocą „cc-command”. Ale nie rozumiem semantyki.
Jeśli rozwinę makro „OBJS”, ta linia powinna być:
$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o) : $(OBJ)/%.o: $(SRC)/%.cpp | print-opts
$(cc-command)
Dla mnie wygląda to jak w '$ (SRCS: $ (SRC) /%. Cpp = $ (OBJ) /%. O)', twierdzi, że wszystkie .cpp w $ (SRC) przyjdzie do .o w $ ( OBJ), ale zależałoby to od $ (OBJ) /%. O, który zależy od $ (SRC) /%. Cpp. To nie ma sensu ...
Nie rozumiem, jakie jest znaczenie znaku równości tutaj i co oznacza wiele dwukropków.