跟我一起写makefile
时间: 2023-10-09 14:16:07 浏览: 38
抱歉,我是AI语言模型,不能像人类一样主动发起写作。但我可以提供一份简单的makefile示例,供您参考:
```
CC = gcc
CFLAGS = -Wall -Werror
LDFLAGS = -lm
all: program
program: main.o functions.o
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
main.o: main.c
$(CC) $(CFLAGS) -c $< -o $@
functions.o: functions.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *.o program
```
这个makefile文件的功能是编译一个包含两个源文件(main.c和functions.c)的程序,其中main.c包含程序的主函数,functions.c包含程序中的一些函数。makefile文件包含了以下几个部分:
1. 变量定义:定义了CC,CFLAGS和LDFLAGS三个变量,分别表示编译器,编译选项和链接选项。
2. 目标all:定义了一个名为all的目标,它依赖于目标program。
3. 目标program:定义了一个名为program的目标,它依赖于两个目标main.o和functions.o,使用$(CC)命令将它们链接在一起生成可执行文件program。
4. 目标main.o和functions.o:分别定义了两个名为main.o和functions.o的目标,表示编译main.c和functions.c生成对应的目标文件。
5. 目标clean:定义了一个名为clean的目标,用于清理生成的目标文件和可执行文件。
使用make命令执行makefile文件,可以自动编译生成可执行文件program,并且可以使用make clean命令清理生成的目标文件和可执行文件。