led驱动make后出现“ No rule to make target”

etora 2012-08-13 11:41:54
被这个错误折磨了很久具体错误信息如下:
make -C /linux-2.6.22.6 M='pwd' modules
make[1]: Entering directory `/linux-2.6.22.6'
scripts/Makefile.build:17: /linux-2.6.22.6/pwd/Makefile: No such file or directory
make[2]: *** No rule to make target `/linux-2.6.22.6/pwd/Makefile'. Stop.
make[1]: *** [_module_pwd] Error 2
make[1]: Leaving directory `/linux-2.6.22.6'
make: *** [all] Error 2
makefile内容如下:

KVERS = /linux-2.6.22.6

#PWD = $(shell pwd)

all:
make -C $(KVERS) M='pwd' modules

clean:
make -C $(KVERS) M='pwd' modules clean
rm -rf modules.order

obj-m += frist_drv.o

虚拟机系统:ubuntu10.10
linux内核目录:

frist_drv存放目录:

希望知道的朋友帮忙解决解决。
...全文
1074 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yaksa 2013-07-18
  • 打赏
  • 举报
回复
不是M='pwd'而是M=`pwd` 看出区别了吗?pwd两边不是单引号,而是1左边的那个键。
引用 楼主 toraloo 的回复:
被这个错误折磨了很久具体错误信息如下: make -C /linux-2.6.22.6 M='pwd' modules make[1]: Entering directory `/linux-2.6.22.6' scripts/Makefile.build:17: /linux-2.6.22.6/pwd/Makefile: No such file or directory make[2]: *** No rule to make target `/linux-2.6.22.6/pwd/Makefile'. Stop. make[1]: *** [_module_pwd] Error 2 make[1]: Leaving directory `/linux-2.6.22.6' make: *** [all] Error 2 makefile内容如下:

KVERS = /linux-2.6.22.6

#PWD = $(shell pwd)

all:
        make -C $(KVERS) M='pwd' modules

clean:
        make -C $(KVERS) M='pwd' modules clean
        rm -rf modules.order

obj-m   += frist_drv.o
虚拟机系统:ubuntu10.10 linux内核目录: frist_drv存放目录: 希望知道的朋友帮忙解决解决。
etora 2012-08-13
  • 打赏
  • 举报
回复
非常感谢RoomHr。
RoomHr 2012-08-13
  • 打赏
  • 举报
回复
M 参数是指定工作目录,也就是你的驱动目录。

$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。
etora 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

make -C /linux-2.6.22.6 M='pwd' modules

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
[/Quote]
问题解决就是你这个办法,不知是否能解释一下我还是不怎么理解;不十分感谢啊。
etora 2012-08-13
  • 打赏
  • 举报
回复
#PWD = $(shell pwd)是注释了的
[Quote=引用 2 楼 的回复:]

M=$(PWD)
[/Quote]
etora 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的源码文件是不是 frist_drv.c
[/Quote]
对,没错。
RoomHr 2012-08-13
  • 打赏
  • 举报
回复
make -C /linux-2.6.22.6 M='pwd' modules

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
falloutmx 2012-08-13
  • 打赏
  • 举报
回复
M=$(PWD)
RoomHr 2012-08-13
  • 打赏
  • 举报
回复
你的源码文件是不是 frist_drv.c

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧