这个Makefile怎么写?

问题描述 投票:0回答:1

我是编程新手,我需要制作以下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

它成功了,但我不明白代码背后的想法。

makefile linux-device-driver
1个回答
0
投票

尽管 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

希望这有帮助。如果还不够,请在评论中提出一些问题,有人会编辑答案。

© www.soinside.com 2019 - 2024. All rights reserved.