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

时间:2022-06-30 12:45:39
被这个错误折磨了很久具体错误信息如下:
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内核目录:
led驱动make后出现“ No rule to make target”
frist_drv存放目录:
led驱动make后出现“ No rule to make target”
希望知道的朋友帮忙解决解决。

9 个解决方案

#1


你的源码文件是不是 frist_drv.c

#2


M=$(PWD)

#3


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

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。

#4


引用 1 楼  的回复:
你的源码文件是不是 frist_drv.c

对,没错。

#5


#PWD = $(shell pwd)是注释了的
引用 2 楼  的回复:
M=$(PWD)

#6


引用 3 楼  的回复:
make -C /linux-2.6.22.6 M='pwd' modules

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。

问题解决就是你这个办法,不知是否能解释一下我还是不怎么理解;不十分感谢啊。

#7


M 参数是指定工作目录,也就是你的驱动目录。

$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。

#8


非常感谢RoomHr。

#9


不是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内核目录:
led驱动make后出现“ No rule to make target”
frist_drv存放目录:
led驱动make后出现“ No rule to make target”
希望知道的朋友帮忙解决解决。

#1


你的源码文件是不是 frist_drv.c

#2


M=$(PWD)

#3


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

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。

#4


引用 1 楼  的回复:
你的源码文件是不是 frist_drv.c

对,没错。

#5


#PWD = $(shell pwd)是注释了的
引用 2 楼  的回复:
M=$(PWD)

#6


引用 3 楼  的回复:
make -C /linux-2.6.22.6 M='pwd' modules

M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。

问题解决就是你这个办法,不知是否能解释一下我还是不怎么理解;不十分感谢啊。

#7


M 参数是指定工作目录,也就是你的驱动目录。

$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。

#8


非常感谢RoomHr。

#9


不是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内核目录:
led驱动make后出现“ No rule to make target”
frist_drv存放目录:
led驱动make后出现“ No rule to make target”
希望知道的朋友帮忙解决解决。