make文件中的以下表达式是什么意思?
What does the following expression in make file mean?
我正在查看 SDK 的 Makefile,<project>.elf
规则取决于 C_OBJS
,
C_OBJS
定义如下。
C_OBJS = $(C_FILES:%.c=$(BUILD_DIR)/%.o)
C_FILES
是所有 C 文件的集合。
我无法弄清楚的是,Makefile 是如何知道如何在将这些 C 文件链接成 elf 之前将它们转换为各自的 OBJS(因为 elf 规则只链接它们)
对于 patsubst
函数,$(C_FILES:%.c=$(BUILD_DIR)/%.o)
是 shorthand。参见 here。
就了解如何构建 .o
文件而言,除非您明确禁用它们,否则 make 将使用一组预定义的 implicit rules,其中一个构建 .o
文件来自.c
个文件。
我正在查看 SDK 的 Makefile,<project>.elf
规则取决于 C_OBJS
,
C_OBJS
定义如下。
C_OBJS = $(C_FILES:%.c=$(BUILD_DIR)/%.o)
C_FILES
是所有 C 文件的集合。
我无法弄清楚的是,Makefile 是如何知道如何在将这些 C 文件链接成 elf 之前将它们转换为各自的 OBJS(因为 elf 规则只链接它们)
对于 patsubst
函数,$(C_FILES:%.c=$(BUILD_DIR)/%.o)
是 shorthand。参见 here。
就了解如何构建 .o
文件而言,除非您明确禁用它们,否则 make 将使用一组预定义的 implicit rules,其中一个构建 .o
文件来自.c
个文件。