- 论坛徽章:
- 0
|
2.4下编译模块:
# gcc -c -O2 -DMODULE -D__KERNEL__ -I/usr/src/linux hello .c
# insmod test.o
2.6却非要个如下的Makefile:
- obj-m := module.o
- KDIR := /lib/modules/$(shell uname -r)/build
- PWD := $(shell pwd)
- default:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
复制代码
刚接触2.6模块编程,对这个Makefile我不是很明白(刚开始接触linux,makefile等,我很菜,^_^):
1.makefile是怎么找到依赖文件的?是根据目标文件来搜寻同名的c 文件的吗?
2.KDIR这个目录下的东西到底做啥用的?内核不是在/usr/src/kernels/2.6.11-1.1369_FC4-i686下吗?
3.$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules这条语句是啥意思啊? SUBDIRS代表啥意思?
4.这个makefile中不是没编译命令嘛,它是怎么编译的呢?
5.我要交叉编译模块,那makefile应该怎么改呢,在哪指定交叉编译器啊?KDIR是不是就设成与开发板相应的内核源代码的目录?
谢谢前辈们解答! |
|