gpt4 book ai didi

linux - 阐明 makefile 语法

转载 作者:太空宇宙 更新时间:2023-11-04 09:25:34 26 4
gpt4 key购买 nike

有人能解释一下这段代码是如何工作的吗?

PRE_PROC_EXE        := $(shell which pre_proc.pl)
PRE_PROC2_EXE := $(shell which pre_proc2.pl)

$(filter $(TMP_DIR)/%.c,$(FILES)):$(TMP_DIR)/%.c: $(SRC_DIR)/%.c
$(PRE_PROC_EXE) < $< > $@

我试图在第一步生成的文件上再添加一个预处理步骤(使用 PRE_PROC2_EXE)。我该怎么做?

最佳答案

$(shell)是一个运行 shell 命令并返回其输出的 make 函数。

所以 PRE_PROC_EXE包含运行 which pre_proc.pl 的输出和 PRE_PROC2_EXE包含运行 which pre_proc2.pl 的输出. (我会指出 which 不可移植,不能保证存在并且没有行为规范,所以你不能依赖它的输出所以像这样使用它不是很好想法。)

剩下的是一个Static Pattern Rule它对 $(FILES) 中的条目进行操作匹配 $(TMP_DIR)/%.c模式(来自 $(filter $(TMP_DIR)/%.c,$(FILES)) )并使用匹配的 $(SRC_DIR)/%.c 将配方应用于它们文件作为先决条件($<)和匹配的$(TMP_DIR)/%.c文件作为目标 ( $@ )。

关于如何申请PRE_PROC2_EXE对此很难回答,因为您没有解释该脚本的工作原理或您需要如何应用它。

关于linux - 阐明 makefile 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36897542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com