我正在尝试为内核模块编写一个 makefile,但无法让它工作。运行以下有这个输出
$ make
make: Nothing to be done for 'all'.
但是直接在终端上运行make命令会导致
$ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
make: Entering directory '/usr/src/linux-headers-3.5.0-17-generic'
CC [M] <blah>
Building modules, stage 2
<blah>
make: Leaving directory...
我的Makefile的内容是(源文件是main.c)
obj-m += main.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
在尝试使用 makefile 之前,我确实删除了 *.o 和 *.ko。将 all
更改为 default
也没有任何作用。
最佳答案
最有可能的问题是您没有使用真正的 制表符来开始阅读make -C ...
的行,而是使用了多个空格。 make
要求所有命令都以制表符开头。
关于linux - 不同的 'make' 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226425/