当前位置:嗨网首页>书籍在线阅读

10-模块的编译

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

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:

obj-m := modulename.o

module name-objs := file1.o file2.o