1 简单的编译c语言的makefile

// myproject.c
#include <stdio.h>
 
int main() {
    printf("Hello, Makefile!\n");
    return 0;
}
CC=gcc
CFLAGS=-Wall -g
LDFLAGS=
 
myproject: myproject.o
    $(CC) -o myproject myproject.o $(LDFLAGS)
 
myproject.o: myproject.c
    $(CC) -c myproject.c $(CFLAGS)
 
clean:
    rm -f *.o myproject

这个Makefile定义了如何编译和链接你的程序。CC变量指定了编译器(这里是gcc),CFLAGS变量包含了编译器的标志,比如警告选项和调试信息,LDFLAGS变量用于链接时的选项。
运行Makefile:在命令行中运行make命令,Makefile会根据其规则自动编译和链接你的程序。

2 复杂一点的编译c语言的makefile

# 设置编译器
CC = gcc
# 设置编译选项
CFLAGS = -Wall -g
 
# 目标可执行文件
TARGET = myprogram
 
# 源文件列表
SRCS = $(wildcard *.c)
# 目标文件列表
OBJS = $(SRCS:.c=.o)
 
# 默认目标
$(TARGET): $(OBJS)
    $(CC) $(CFLAGS) $(OBJS) -o $(TARGET)
 
# 依赖于.c文件的.o规则
%.o: %.c
    $(CC) $(CFLAGS) -c $< -o $@
 
# 清理规则
clean:
    rm -f $(TARGET) $(OBJS)