makefile不同目录下的文件
时间: 2023-08-04 16:09:35 浏览: 71
makefile多目录文件
4星 · 用户满意度95%
可以使用makefile中的变量和路径来指定不同目录下的文件。以下是一个示例makefile,其中有两个目录(src和include),并且将它们的路径分别指定为变量SRC_DIR和INC_DIR:
```
# 指定源文件和头文件所在的目录
SRC_DIR = src
INC_DIR = include
# 指定编译器和编译选项
CC = gcc
CFLAGS = -Wall -I$(INC_DIR)
# 指定生成的可执行文件的名称
TARGET = myapp
# 定义源文件和头文件的列表
SRCS = $(wildcard $(SRC_DIR)/*.c)
HDRS = $(wildcard $(INC_DIR)/*.h)
# 定义生成的目标文件的列表
OBJS = $(SRCS:.c=.o)
# 定义编译规则
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 定义依赖关系
$(OBJS): $(HDRS)
# 定义清理规则
clean:
rm -f $(OBJS) $(TARGET)
```
在上面的示例中,使用变量SRC_DIR和INC_DIR来指定源文件和头文件所在的目录。在定义源文件和头文件的列表时,使用了$(wildcard)函数来获取目录中的所有文件。在定义生成的目标文件的列表时,使用了字符串替换函数$(SRCS:.c=.o)来将所有源文件的后缀名.c替换为.o。在编译规则中,使用了变量CFLAGS来指定编译选项,其中使用了-I选项来指定头文件的路径。在生成目标文件和可执行文件时,使用了变量$@和$^来表示目标文件和依赖文件的列表。
阅读全文