TARGET = pg
OBJS = main.o
CC = gcc
CFLAGS = -Wall -D_GNU_SOURCE
LDFLAGS = -pthread
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(OBJS) $(LDFLAGS) -o $(TARGET)
%.o: %.c
$(CC) $(CFLAGS) $< -c -o $@
clean:
rm -f $(TARGET)
rm -f $(OBJS)
call: clean all
%.o: %.c 代表 *.o 都是由 *.c生成。
$< 第一个输入文件(这里是 %.c)
$@ 输出(这里是%.o)
$^ 代表所有的输入文件
C=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 $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
.cpp.o 代表 “.o” (object files) 来自 “.cpp”