这是一个“Hello.c”模块和“Makefile”。从woking目录执行make
后,我收到以下消息:
make:“全部”没什么可做的。
这是“Hello.c”文件:
#include <linux/module.h> // included for all kernel modules
#include <linux/kernel.h> // included for KERN_INFO
#include <linux/init.h> // included for __init and __exit macros
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Lakshmanan");
MODULE_DESCRIPTION("A Simple Hello World module");
static int __init hello_init(void) {
printk(KERN_INFO "Hello world!\n");
return 0; // Non-zero return means that the module couldn't be
}
static void __exit hello_cleanup(void) {
printk(KERN_INFO "Cleaning up module.\n");
}
module_init(hello_init);
module_exit(hello_cleanup);
和“Makefile”:
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
我尝试了所有建议,我在终端中得到了这个:
root@stupid-HP:/home/stupid/cpz/module$ pwd
/home/stupid/cpz/module
root@stupid-HP:/home/stupid/cpz/module$ ls
hello.c Makefile
root@stupid-HP:/home/stupid/cpz/module$ make
make: Nothing to be done for `all'.
root@stupid-HP:/home/stupid/cpz/module$ make clean
make: Nothing to be done for `clean'.
root@stupid-HP:/home/stupid/cpz/module$ make clean all
make: Nothing to be done for `clean'.
make: Nothing to be done for `all'.
root@stupid-HP:/home/stupid/cpz/module$ ls
hello.c Makefile
root@stupid-HP:/home/stupid/cpz/module$ make
make: Nothing to be done for `all'.
root@stupid-HP:/home/stupid/cpz/module$ vi hello.c # modified again
root@stupid-HP:/home/stupid/cpz/module$ make clean
make: Nothing to be done for `clean'.
root@stupid-HP:/home/stupid/cpz/module$ make
make: Nothing to be done for `all'.
答案 0 :(得分:23)
make clean
然后再次make
答案 1 :(得分:6)
根据时间戳制作作品。如果您更改了一些源文件,请编译它们并相应地构建图像。如果您不更改源文件,则编译器与您的项目无关。 make不像gcc
那样工作,每次都需要编译是否需要新版本。这是为您的项目使用make的众多优势之一。
答案 2 :(得分:3)
您应该删除Makefile中的空格。在makefile中,只使用tab。
我再次测试了您的代码,它与标签
配合使用答案 3 :(得分:2)
编译器只是告诉你你的代码已经编译好了,你的代码没有变化(它是最新的),然后就不编译了。是编译器的内置功能,如果源代码文件没有变化,编译器就不会浪费时间。
在make clean
之前使用make
或修改Hello.c
并构建项目。
答案 4 :(得分:0)
尝试:make clean删除可执行文件(./a.out)并尝试再次编译! 你可能会在某些功能上有所改变而使它看不到它
答案 5 :(得分:0)
以防有人遇到与我相同的问题:
当您的某个文件夹与可执行文件同名时,Eclipse无法正确构建。如果是这种情况,无论你做什么,你都会得到“无所事事”的信息。解决方案是重命名文件夹或可执行文件。可以找到详细信息here。