在Makefile中,如果你想在一个调用中处理多个目标,可以使用空格分隔这些目标。这样,当你运行make命令时,它会同时构建这些目标。以下是一个简单的示例:
# 定义源文件和目标文件
SRC_FILES = main.c file1.c file2.c
OBJ_FILES = $(SRC_FILES:.c=.o)
TARGETS = program1 program2
# 默认目标
all: $(TARGETS)
# 链接目标文件生成可执行文件
program1: file1.o main.o
gcc -o $@ $^
program2: file2.o main.o
gcc -o $@ $^
# 编译源文件生成目标文件
%.o: %.c
gcc -c $< -o $@
# 清理生成的文件
clean:
rm -f $(OBJ_FILES) $(TARGETS)
在这个示例中,我们定义了两个目标program1
和program2
,它们都依赖于main.o
,但分别还需要file1.o
和file2.o
。all
目标是默认目标,它依赖于program1
和program2
。
当你运行make
命令时,它会首先构建program1
和program2
所需的所有目标文件,然后链接它们生成可执行文件。
如果你想在一个调用中处理多个目标,可以直接在命令行中指定这些目标,例如:
make program1 program2
这将同时构建program1
和program2
及其依赖项。
-j
参数)来控制并发任务的数量。例如,使用make -j4
可以限制最多同时运行4个任务,避免资源竞争。
通过这种方式,你可以有效地在一个调用中处理多个目标,提高构建效率。
领取专属 10元无门槛券
手把手带您无忧上云