求LDD3"hello world"问题!

发布于 2022-09-22 12:52:49 字数 1158 浏览 16 评论 0

刚学这些,菜鸟.按照书上的写法,编写hello world那个程序时,编译老是不通过,make的时候总提示 :make: Nothing to be done for `modules'.

linux 版本是 SUSE LINUX 2.6的

##########makefile#########33
KERNEL_SRC=/usr/src/linux-2.6.16.21-0.8/
PWD :=$(shell pwd)
obj-m := hello.o

modules:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules

clean:
#rm -rf *.ko
#rm -rf *.o
#rm -rf *.mod.c
################################

##########hello.c##################
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
        printk(KERN_ALERT "Hello,world\n");
        return 0;
}

static void hello_exit(void)
{
        prink(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);
################################

[ 本帖最后由 lqq_1229 于 2008-10-24 11:10 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

情未る 2022-09-29 12:52:49

原帖由 lqq_1229 于 2008-10-24 09:46 发表
刚学这些,菜鸟.按照书上的写法,编写hello world那个程序时,编译老是不通过,make的时候总提示 :make: Nothing to be done for `modules'.

linux 版本是 SUSE LINUX 2.6的

##########makefile#########33
...

$(MAKE) -C $(KERNEL_SRC) M=$(PWD)加个空格modules

最佳男配角 2022-09-29 12:52:49

那个之间已经加了 空格了,但是还是一样的

丿*梦醉红颜 2022-09-29 12:52:49

原帖由 lqq_1229 于 2008-10-24 10:54 发表
那个之间已经加了 空格了,但是还是一样的

其实你不用搞的这么复杂,其实那个文件是要有两次make的,一次是你敲的,一次是文件中的那个 $(make)

简单方法:
Makefile中 obj-m := hello.o

在当前目录下输入:
make -C /usr/src/linux(根据你的linux代码书更改) M=`pwd` modules
就好了

神经暖 2022-09-29 12:52:49

modules:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules

改为:
modules:
          $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules
加Tab

十雾 2022-09-29 12:52:49

原帖由 richardhesidu 于 2008-10-24 14:55 发表
modules:
$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules

改为:
modules:
          $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules
加Tab

这个不知道是他贴代码的时候的问题呢,还是真么写好的问题,哈哈。

往事风中埋 2022-09-29 12:52:49

Makefile中,规则后面的命令必须以Tab开头。否则make不认的。自然也找不到应该执行的动作。所以才会出现:
make: Nothing to be done for `modules'.

薄荷梦 2022-09-29 12:52:49

原帖由 richardhesidu 于 2008-10-24 15:34 发表
Makefile中,规则后面的命令必须以Tab开头。否则make不认的。自然也找不到应该执行的动作。所以才会出现:
make: Nothing to be done for `modules'.

版主正解,呵呵

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文