在 Debian 下用 gcc 写 Makefile,其实和在其他 Linux 系统上基本一样。下面从最简单到较规范给你几个示例。
假设有 hello.c:
#include <stdio.h>
int main() {
printf("Hello Debian\n");
return 0;
}
hello: hello.c
gcc -o hello hello.c
clean:
rm -f hello
使用:
make
./hello
make clean
假设:
main.c
foo.c
foo.h
CC = gcc
CFLAGS = -Wall -Wextra -O2
TARGET = app
OBJS = main.o foo.o
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS)
main.o: main.c foo.h
$(CC) $(CFLAGS) -c main.c
foo.o: foo.c foo.h
$(CC) $(CFLAGS) -c foo.c
clean:
rm -f $(OBJS) $(TARGET)
CC = gcc
CFLAGS = -Wall -O2
TARGET = app
OBJS = main.o foo.o
$(TARGET): $(OBJS)
$(CC) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -f $(OBJS) $(TARGET)
sudo apt update
sudo apt install build-essential
build-essential 包含:
CFLAGS = -g -Wall
如果用 math.h:
LDLIBS = -lm
$(TARGET): $(OBJS)
$(CC) -o $@ $^ $(LDLIBS)
CC = gcc
CFLAGS = -Wall -Wextra -O2
TARGET = app
SRCS = main.c foo.c
OBJS = $(SRCS:.c=.o)
$(TARGET): $(OBJS)
$(CC) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -f $(OBJS) $(TARGET)
.PHONY: clean
如果你愿意,可以告诉我:
我可以直接帮你写一个可用的 Makefile。