Makefile中将多个.c文件合成一个可执行文件
时间: 2024-10-19 14:11:26 浏览: 23
linux Makefile 多个*.h、*.c 编译.ko文件参考
Makefile是一个在Unix/Linux或类Unix系统中常用的构建工具,用于自动化管理和组织源代码文件的编译过程。当你有多个`.c`(C语言源代码)文件需要组合成一个可执行文件(通常是一个`.o`或`.exe`文件),你可以创建一个Makefile来描述这个过程,包括编译、链接等步骤。
以下是一个基本的Makefile示例,它包含了两个源文件`main.c`和`func.c`:
```makefile
CC = gcc # 使用gcc作为默认的C编译器
OBJECTS = main.o func.o
all: program # 这是目标规则,表示要生成可执行文件
# 定义如何从源文件编译为对象文件
%.o: %.c
$(CC) -c $< -o $@
# 定义如何链接所有对象文件生成可执行文件
program: $(OBJECTS)
$(CC) $(OBJECTS) -o program
# 清理目标,删除编译产生的临时文件
clean:
rm -f *.o program
```
在这个例子中,`all`规则指定了当运行`make all`时应该做什么——即编译所有的`.c`文件并链接生成`program`。每个`.o`对象文件的依赖于对应的`.c`源文件,如果源文件改变了,Makefile会自动重新编译相应的对象文件。`clean`规则则定义了如何清理编译过程中产生的中间文件。
要使用这个Makefile,只需打开终端,进入包含Makefile的目录,然后运行`make`命令即可。
阅读全文