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存放目录:
希望知道的朋友帮忙解决解决。
9 个解决方案
#1
你的源码文件是不是 frist_drv.c
#2
M=$(PWD)
#3
make -C /linux-2.6.22.6 M='pwd' modules
M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
#4
对,没错。
#5
#PWD = $(shell pwd)是注释了的
#6
问题解决就是你这个办法,不知是否能解释一下我还是不怎么理解;不十分感谢啊。
#7
M 参数是指定工作目录,也就是你的驱动目录。
$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。
$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。
#8
非常感谢RoomHr。
#9
不是M='pwd'而是M=`pwd`
看出区别了吗?pwd两边不是单引号,而是1左边的那个键。
看出区别了吗?pwd两边不是单引号,而是1左边的那个键。
#1
你的源码文件是不是 frist_drv.c
#2
M=$(PWD)
#3
make -C /linux-2.6.22.6 M='pwd' modules
M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
M='pwd' 当前路径命令的用法有问题吧 用 M=$(pwd) 试试。
#4
对,没错。
#5
#PWD = $(shell pwd)是注释了的
#6
问题解决就是你这个办法,不知是否能解释一下我还是不怎么理解;不十分感谢啊。
#7
M 参数是指定工作目录,也就是你的驱动目录。
$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。
$(pwd) 是输出当前命令行的目录,你可以在命令行直接执行pwd看效果。如果用这个命令,编译的时候你必须切换到驱动目录。
#8
非常感谢RoomHr。
#9
不是M='pwd'而是M=`pwd`
看出区别了吗?pwd两边不是单引号,而是1左边的那个键。
看出区别了吗?pwd两边不是单引号,而是1左边的那个键。