make:没有什么可以为'all'做的。当我试图编译

时间:2015-07-01 14:56:41

标签: linux module makefile kernel

这是我的make文件的代码

obj-m +=hello-1.o
all:
<tab>make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
<tab>make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

我有几个问题

  1. 我们用扩展名* .c保存C语言文件,那么对于Makefile我们应该使用哪个扩展名?
  2. 当我在终端“make”中抛出命令时,它给出了错误 make:“all”没什么可做的。

1 个答案:

答案 0 :(得分:1)

文件http://localhost:4001/?bid=abc123#/login 可能已经存在。因为它不依赖于任何东西,并且不是all的依赖,它的存在足以考虑它。

我建议添加

.PHONY

.PHONY: all clean 的结尾。

你被允许调用任何你喜欢的文件,只要它是Makefile ;-)实际上,有一些非标准名称可以用作后备,或者你可以为Makefile提供-f标记的名称,但如果您有能力避免使用这些标记,我也不会推荐其中任何一个。

其他评论(你没有问过,但你还是得到了):

  1. 避免在命令中按字面意思调用make;始终使用make。例如,当您使用$(MAKE)时,这会有所帮助。
  2. 请勿阻止makefile的用户构建除现在运行的内核以外的内核。为它创建一个变量(例如-nKVER := $(shell uname -r),以便在命令行上覆盖它。