Linux Makefile中的对象文件寻址
我正在用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
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中的含义。看看这个例子。你肯定会经历的。谢谢,好的。知道了。非常感谢你。如果有任何疑问,我会回来的。