makefile里添加多个filelist
时间: 2023-09-30 18:04:55 浏览: 42
在 Makefile 中添加多个文件列表,你可以使用变量和通配符来实现。以下是一个示例:
```makefile
# 定义文件列表变量
SRC_FILES := src/file1.c src/file2.c src/file3.c
HEADER_FILES := include/header1.h include/header2.h include/header3.h
# 生成目标文件列表
OBJ_FILES := $(SRC_FILES:.c=.o)
# 编译规则
all: program
program: $(OBJ_FILES)
gcc $^ -o $@
# 通配符规则,生成目标文件
%.o: %.c $(HEADER_FILES)
gcc -c $< -o $@
clean:
rm -f $(OBJ_FILES) program
```
在上面的示例中,我们定义了两个文件列表变量:`SRC_FILES` 和 `HEADER_FILES`,分别包含了要编译的源文件和头文件。
然后,我们使用了一个通配符规则来生成目标文件列表 `OBJ_FILES`,将源文件的扩展名 `.c` 替换为 `.o`。
最后,我们定义了一个 `program` 目标和一个 `clean` 目标。`program` 目标依赖于 `$(OBJ_FILES)`,表示编译目标文件生成可执行程序。`clean` 目标用于清理生成的目标文件和可执行程序。
你可以根据你的实际情况修改文件列表变量和编译规则,以满足你的需求。
相关问题
makefile里怎么链接多个头文件路径
在Makefile中链接多个头文件路径,需要通过设置编译器的 include 路径来实现。具体的步骤如下:
1. 在Makefile中定义一个变量,用于存储你需要链接的头文件路径,例如:
```makefile
INCLUDE_PATH = -I/path/to/header1 -I/path/to/header2
```
2. 在编译命令中添加这个变量,例如:
```makefile
gcc -o output_file source_file.c $(INCLUDE_PATH)
```
这样,编译器就会在这些路径下查找头文件。
值得注意的是,如果你的头文件路径比较多,可以将它们存储在一个单独的文件中,然后在Makefile中引用。例如:
```makefile
INCLUDE_PATH = $(shell cat header_paths.txt)
```
其中 header_paths.txt 文件中存储了需要链接的头文件路径,每行一个路径。
如何在makefile里添加分隔符
在 Makefile 中,分号 (;) 用于分隔命令,使得多条命令可以在同一规则中执行。如果您希望在命令之间添加分隔符,可以使用反斜杠 (\) 进行转义。
例如,以下规则将生成两个目标文件:
```
all: target1 target2
target1:
cmd1 ; \
cmd2 ; \
cmd3
target2:
cmd4 ; \
cmd5 ; \
cmd6
```
在这个例子中,分号 (;) 用于分隔多条命令,每个命令都必须在单独的一行上。由于 Makefile 在读取时会将每行末尾的换行符去掉,因此需要使用反斜杠 (\) 进行转义,以确保命令之间的分隔符被正确解析。