我正在尝试学习一些关于Linux内核编程的知识,在尝试完一个教程之后我完全陷入困境。 我的makefile抱怨某种“命令未找到”错误(错误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
有没有人知道出了什么问题?
提前致谢!
答案 0 :(得分:1)
将关键字制作更改为MAKE,如下所示
默认:
$ { MAKE } -C $ {KERNEL_SOURCE} SUBDIRS = $ {PWD}模块
清洁:
$ { MAKE } -C $ {KERNEL_SOURCE} SUBDIRS = $ {PWD} clean
答案 1 :(得分:1)
增加Santosh A的变化
;
中不应该PWD := ${shell pwd};
。删除它将解决/bin/sh: 1: modules: not found
错误。