linux驱动模块编译Makefile

该Makefile最好是和hello.c同样的路径

obj-m+=hello.o            表示编译生成的模块  前缀hello必须和.c文件相同

all:

        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

clean:

        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean

解释以上:

指定内核源码的位置,进入内核编译

-C

内核源码的位置

/lib/modules/$(shell uname -r)/build/

指定编译的地址

M=$(PWD)

M=$(CURDIR)

编译模块放置位置

modules:默认是将源文件编译生成内核模块 放置 /lib/modules/$(uname -r)/extra/

modules_install:安装外部模块  建立环境变量指定位置INSTALL_MOD_PATH

删除

clean 

多文件编译

如果多文件编译,我们需要指定文件

obj-m := foo.o bar.o

foo-y := a.o  b.o c.o      #后边的 生成foo.o的文件 必须保证有.o前缀的.c

bar-y := e.o d.o                             #后边的 生成bar.o的文件

Guess you like

Origin blog.csdn.net/qq_20017379/article/details/117232735