Linux Makefile中的对象文件寻址

Linux Makefile中的对象文件寻址,linux,makefile,kbuild,Linux,Makefile,Kbuild,我正在用Linux编写一个简单的设备驱动程序。在makefile中,我们通常将第一行写入 obj-m += hello.o 其中hello是编写的模块。我在其他makefile中看到符号+=被:=和其他一些符号替换。这两者之间有什么显著的区别,以及可能的选项是什么?实际上,Kbuild在包含user Makefile之前会重置obj-m以及一些其他变量(请参见),因此+=和:=赋值之间没有区别(假设只有hello.o行) 就个人而言,我更喜欢附加作业(+=)。这可以防止出现以下愚蠢错误: o

我正在用Linux编写一个简单的设备驱动程序。在makefile中,我们通常将第一行写入

obj-m += hello.o 

其中
hello
是编写的模块。我在其他makefile中看到符号
+=
:=
和其他一些符号替换。这两者之间有什么显著的区别,以及可能的选项是什么?

实际上,Kbuild在包含user Makefile之前会重置
obj-m
以及一些其他变量(请参见),因此
+=
:=
赋值之间没有区别(假设只有
hello.o
行)

就个人而言,我更喜欢附加作业(
+=
)。这可以防止出现以下愚蠢错误:

obj-m := hello.o
obj-m := world.o
如果最后一行是第一行的复制粘贴,而您忘记将赋值类型更改为
+=
,那么您将只编译
world.o
(没有
hello.o


我还建议您阅读有关的Kbuild文档。

如果您阅读了
make
程序的文档,它将准确地告诉您
:=
+=
在makefile中的含义。看看这个例子。你肯定会经历的。谢谢,好的。知道了。非常感谢你。如果有任何疑问,我会回来的。