购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.9
模块的编译

我们可以为代码清单4.1的模板编写一个简单的Makefile:

KVERS = $(shell uname -r)

# Kernel modules
obj-m += hello.o

# Specify flags for the module compilation.
#EXTRA_CFLAGS=-g -O0


build: kernel_modules

kernel_modules:
      make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules

clean:
      make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean

该Makefile文件应该与源代码hello.c位于同一目录,开启其中的EXTRA_CFLAGS=-g-O0,可以得到包含调试信息的hello.ko模块。运行make命令得到的模块可直接在PC上运行。

如果一个模块包括多个.c文件(如file1.c、file2.c),则应该以如下方式编写Makefile: ulCVo/jgscqZOQKysR1JU4o8BdQjqAqleA9pr8gfx3eECkeebzrY7q+NU+YadX/m

obj-m := modulename.o
modulename-objs := f ile1.o f ile2.o
点击中间区域
呼出菜单
上一章
目录
下一章
×