我是编程新手,我需要制作以下Makefile,但找不到网站向我解释。
稍微解释一下:
F.c - 内核模块,它使用 A.h、B.h、C.h 中声明的函数
每个 X.h 函数都在 X.c 中实现(一如既往)。
有人可以帮助我吗? 在我只有 2 个文件 A.h 和 F.c 之前,我的 Makefile 是:
obj-m + = hw3secws.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
它成功了,但我不明白代码背后的想法。
尽管 B.h 和 C.h 可能包含 A.h 和 D.h,但它们并不依赖于它而存在。所以类似:
B.h: A.h D.h
不正确。 B.h已经存在,当A.h改变时,它不会改变。
但是对象模块确实依赖于包含文件,并且当任何依赖的包含文件或源文件发生更改时必须重新构建。
F.o: A.h B.h C.h D.h F.c
B.o: A.h B.h C.h D.h B.c
C.o: A.h B.h C.h D.h C.c
D.o: D.h D.c
另请参阅:makedepend
希望这有帮助。如果还不够,请在评论中提出一些问题,有人会编辑答案。