初级会员

- 积分
- 185
- 金钱
- 185
- 注册时间
- 2019-5-24
- 在线时间
- 39 小时
|
1金钱
驱动模块的makefile
KERNELDIR := /home/zuozhongkai/linux/IMX6ULL/linux/temp/linux-imxrel_imx_4.1.15_2.1.0_ga_alientek
CURRENT_PATH := $(shell pwd)
obj-m := led.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
不理解,为什么要KERNELDIR?工具链已经安装,并导出路径了:usr/local,为什么不像测试程序那样:
arm-linux-gnueabihf-gcc ledApp.c -o ledApp ,非要进入内核目录干么?
或者像裸机那样的makefie:
CROSS_COMPILE ?= arm-linux-gnueabihf-
2 TARGET ?= beep
3
|
最佳答案
查看完整内容[请看2#楼]
驱动本来就是内核的一部分,驱动源文件中包含了那么多的头文件、调用了那么多函数。这些都是内核提供出来的接口,你编译驱动程序不依赖于内核源码怎么编译,头文件去哪里找,函数定义去哪找?
|