gpt4 book ai didi

linux - 内核模块中的 obj-m 变量

转载 作者:太空狗 更新时间:2023-10-29 11:09:19 25 4
gpt4 key购买 nike

在内核模块 makefile 中存在 obj-m 变量。请考虑以下事项:

CUR = $(shell uname -r) 
DIR = /lib/modules/$(CUR)/build
PWD = $(shell pwd)
obj-m := m1.o m2.o
default:
$(MAKE) -C $(DIR) SUBDIRS=$(PWD) modules

在此Makefile 中,default 目标包含调用内核sub-make 的配方。 obj-m 变量不会导出到环境中,因此 sub-make 无法使用它。但是如果我们删除obj-m变量初始化,那么这个make就不会编译m1m2内核模块。所以,问题是:

在这种情况下,为什么内核 sub-make 依赖于未导出的 obj-m 变量?

最佳答案

没有任何 make 变量被导出到环境中。

SUBDIRS 被定义为 make 变量。内核生成文件在 SUBDIRS 中查找 Makefile,读取它,并使用其中定义的任何 obj-*

(根据 documentation ,您应该使用 M 而不是 SUBDIRS。)

关于linux - 内核模块中的 obj-m 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139414/

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