以下是一个编译一个扩展名为.x86的makefile的示例代码:
CC = gcc
CFLAGS = -Wall -Werror
SRCS = main.c utils.c
OBJS = $(SRCS:.c=.o)
TARGET = test.x86
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f $(OBJS) $(TARGET)
以上示例代码假设你有一个main.c和utils.c文件,它们是你要编译的源文件。编译器将使用gcc,并且在编译过程中使用了一些常见的警告标志。最终生成的目标文件将被命名为test.x86。
在这个makefile中,有两个主要的目标。第一个目标是$(TARGET),它依赖于$(OBJS)。$(OBJS)是所有源文件的目标文件。使用$(CC)命令将目标文件链接在一起,生成最终的可执行文件$(TARGET)。
第二个目标是%.o: %.c,它表示对于每个.c文件,都有一个对应的.o文件。使用$(CC)命令将.c文件编译为.o文件。
还有一个clean目标,用于删除生成的目标文件和可执行文件。