欢迎使用CSDN-markdown编辑器

来源:互联网 发布:电子琴与电钢琴 知乎 编辑:程序博客网 时间:2024/06/05 23:51
          #**学韦东山视频编译驱动时makefile报错**学习韦东山视频的驱动教学部分,我按照视频的教学把**编译过的内核**(必须要编译过的内核)放在/work/mysystem/linux-2.6.22.6目录下,写好led的驱动(first_drv.c)和如下Makefile文件:
KERN_DIR = /work/mysystem/linux-2.6.22.6all:    make -C $(KERN_DIR)  M='pwd' modules clean:    make -C $(KERN_DIR)  M='pwd'modules clean    rm -rf modules.orderobj-m   += first_drv.o
执行“make”命令时,系统报错,如下图:

报错信息
系统报错:scripts/Makefile.build:17: /work/mysystem/linux-2.6.22.6/pwd/Makefile: No such file or directory,貌似是说找不到Makefile文件?开始我以为是内核没编译,或者内核顶层目录里没有Makefile文件,但发现不是这两个原因。我又上论坛、上网找了很多原因,都没找到解决办法,卡了我1天。
晚上我突然想到,Makefile规则里对引用shell命令格式应该是"$(shell command)",这里直接用'pwd'可以吗?我抱着试试的心态把'pwd'改成"$(shell pwd) ",一运行,结果可以了!
将Makefile改成如下:

KERN_DIR = /work/mysystem/linux-2.6.22.6all:    make -C $(KERN_DIR) M=$(shell pwd) modules clean:    make -C $(KERN_DIR) M=$(shell pwd) modules clean    rm -rf modules.orderobj-m   += first_drv.o
为什么视频中韦东山用'pwd'引用路径就可以呢?这个原因由于时间有限,以后深入学习了makefile和相关的命令再去研究。
原创粉丝点击