Linux内核模块生成文件问题

Linux内核模块生成文件问题,linux,compilation,makefile,kernel,Linux,Compilation,Makefile,Kernel,我正在尝试学习一些关于Linux内核编程的知识,在尝试了一个教程之后,我完全被卡住了。 我的makefile正在抱怨某种“Command not found”错误(错误127),因此它不会编译它。 我试着寻找一个解决办法,但什么也没找到。所以我想我应该试着问一下。对不起,如果这是重复的 以下是shell的错误输出: malt@ubuntu:~/Documents/C$ make C /usr/src/linux SUBDIRS=/home/malt/Documents/C; modules /b

我正在尝试学习一些关于Linux内核编程的知识,在尝试了一个教程之后,我完全被卡住了。 我的makefile正在抱怨某种“Command not found”错误(错误127),因此它不会编译它。 我试着寻找一个解决办法,但什么也没找到。所以我想我应该试着问一下。对不起,如果这是重复的

以下是shell的错误输出:

malt@ubuntu:~/Documents/C$ make
C /usr/src/linux SUBDIRS=/home/malt/Documents/C; modules
/bin/sh: 1: C: not found
/bin/sh: 1: modules: not found
make: [default] Error 127 (ignored)
这是我的makefile:

# Makefile of My First Driver

# if KERNELRELEASE is defined, we've been invoked from the kernel build system
# and can use it's language
ifneq (${KERNELRELEASE},)
    obj-m := mfd.o

# otherwise we've been called directly from the commandline.
# invoke the kernel build system.
else
    KERNEL_SOURCE := /usr/src/linux
    PWD := ${shell pwd};

default:
    ${make} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

clean:
    ${make} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean

endif
有人知道是什么问题吗


提前谢谢

将关键字make更改为make,如下所示

默认值:
${MAKE}-C${KERNEL\u SOURCE}子目录=${PWD}模块
清洁:
${MAKE}-C${KERNEL\u SOURCE}子目录=${PWD}clean


增加桑托什A的变化

  • 不应该有
    PWD:=${shell PWD}。删除它将解决
    /bin/sh:1:modules:not found
    错误
    为什么“MAKE”应该用大写字母?我理解其余的,但我对此很好奇。谢谢。make是一个不应该使用的关键字