GNU makefile'yi öğreniyorum. Bu sayfa boyunca geldi:Makefile'de hedef ".cpp.o:" ne demektir?
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o [email protected]
.cpp.o:
$(CC) $(CFLAGS) $< -o [email protected]
kimse OBJE değişkeni var ve (aynı zamanda o $<
) Ne hedef .cpp.o:
vasıta bize açıklayabilir misiniz: Bu makalenin sonunda http://mrbook.org/blog/tutorials/make/
, bunu buldum?
ben gibi bir şey kullandığımda da bulundu:
SRC = $(wildcard $(SRC_DIR)*.c)
SRC_OBJS = $(patsubst %.c, %.o, $(SRC))
ve "$ (SRC_OBJS)" hedef olarak, her gerekli nesne için tüm nesneleri derlemek olacaktır kullanın. Bu birincisi için olmaz. Fark ne?
Bana adını verdiğiniz için, "sonek kuralı" nı aradım ve bunun GNU belgesinde iyi açıklandığını gördüm. Bu benim problemimi çözdü. –
@MingchenZhang Harika! Stackoverflow'taki bir sonraki adım, en yararlı bulduğunuz cevabı kabul etmemek/kabul etmektir (bazen bunu yapabilmeniz için minimum süre ya da gereken minimum itibar). – Jens