在Linux内核编程中,obj是一个特殊的前缀,用于指定要构建的目标
其携带的参数常用于以下情况:
1、构建内核模块
创建内核模块是,需要使用obj-m例如,obj-m := drv.o 会构建一个名为 drv.o 的内核模块
2. 构建内核:当你需要将代码直接编译到内核中时,你会使用 obj-y。例如,obj-y := func.o 会将 func.o 直接编译到内核中。
3. 排除某些对象:当你不想构建某些对象时,你可以使用 obj-n。例如,obj-n := module.o 会排除 module.o。
4. 构建对象但不指定类型:当你想构建一个对象,但不想指定它是模块还是直接编译到内核中时,你可以使用 obj-。例如,obj- := drv.o 会构建 drv.o,但不指定它的类型。
5. 指定模块的组成部分:当你的模块由多个源文件组成时,你可以使用类似 drv-objs 的变量来指定这些源文件。例如,drv-objs := func.o module.o 表示 drv.o 模块由 func.o 和 module.o 这两个对象文件组成。