我正在分析 Linux KernelMakefile
的捆绑包。我们可以定义一个额外的编译器标志来构建外部模块ccflags-y += -std=gnu11 -Wno-declaration-after-statement -Werror
。我查看了Makefile.build
哪个外部模块构建下降,甚至没有注意到ccflags-m
定义的选项。完整的选项列表:
obj-y :=
obj-m :=
lib-y :=
lib-m :=
always :=
targets :=
subdir-y :=
subdir-m :=
EXTRA_AFLAGS :=
EXTRA_CFLAGS :=
EXTRA_CPPFLAGS :=
EXTRA_LDFLAGS :=
asflags-y :=
ccflags-y :=
cppflags-y :=
ldflags-y :=
subdir-asflags-y :=
subdir-ccflags-y :=
据我了解y
, m -m
用于kbuild
可加载模块, y - 用于内置模块。ccflags-y
所以用, not来指定编译器选项似乎不合逻辑ccflags-m
。
问题:为什么没有ccflags-y
可加载模块的-m
对应项?ccflags-m