免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4017 | 回复: 12
打印 上一主题 下一主题

模块编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-29 14:58 |只看该作者 |正序浏览
在网上查找关于模块编译的文章,打算自己动手来试一下的,现在遇到个问题

在make的时候,出现这样的一个错误[img] [/img]

查了些资料,module没有依赖,会有这样的错误,我不知道应该怎样排错了,求助。

源代码是:
mymodules.c
1. #include <linux/module.h>     /* 引入与模块相关的宏 */
2. #include <linux/init.h>        /* 引入module_init() module_exit()函数 */
3. #include <linux/moduleparam.h> /* 引入module_param() */
4
5. MODULE_AUTHOR("Yu Qiang");
6. MODULE_LICENSE("GPL");
7
8. static int nbr = 10;
9. module_param(nbr, int, S_IRUGO);
10.
11. static int __init yuer_init(void)
12.{
13.    int i;
14.    for(i=0; i<nbr; i++)
15.    {
16.        printk(KERN_ALERT "Hello, How are you. %d\n", i);
17.    }
18.    return 0;
19.}
20.
21.static void __exit yuer_exit(void)
22.{
23.    printk(KERN_ALERT"I come from yuer's module, I have been unlad.\n");
24.}
25.
26. module_init(yuer_init);
27. module_exit(yuer_exit);


Makefile是:
Makefile
obj-m := modules.o                   #要生成的模块名     
modules-objs:= mymod.o        #生成这个模块名所需要的目标文件

KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)

default:
make -C $(KDIR) M=$(PWD) modules

clean:
rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions


原文地址:http://hi.baidu.com/20065562/blo ... df0b4d088dcf.html#0

论坛徽章:
0
13 [报告]
发表于 2011-08-31 09:02 |只看该作者
回复 12# Godbach


    谢谢好建议哈~~我昨晚在图书馆借来了这本书哈~认真学习!呵呵

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
12 [报告]
发表于 2011-08-30 22:57 |只看该作者
建议先了解一下内核模块的基础知识

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
11 [报告]
发表于 2011-08-30 22:54 |只看该作者
回复 10# smallQ_nj

建议你看看 LDD3 上的 helloworld 吧。

有这么经典的教材,何必一开始就去网上找例子呢

论坛徽章:
0
10 [报告]
发表于 2011-08-30 17:14 |只看该作者
回复 9# Godbach


    这两个其实都是在网上找的,他是给出了大体的过程,我按照他的步骤来结果就不能顺利通过

    关于makefile,我还有好多不懂,自己来写估计还有难度

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
9 [报告]
发表于 2011-08-30 17:08 |只看该作者
回复 5# smallQ_nj

你的 Makefile 和源文件就没有对应关系,不是瞎写吗?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2011-08-30 17:07 |只看该作者
回复 5# smallQ_nj

你要是一个文件,可以用这个 Makefile。其中 ,mymod.o 要对应的存在 mymod.c 才行。
改成这样试试
obj-m := mymod.o                  
     
KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)

default:
      make -C $(KDIR) M=$(PWD) modules

clean:
      rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions

论坛徽章:
0
7 [报告]
发表于 2011-08-30 16:47 |只看该作者
回复 6# MMMIX


    我也觉得可能是依赖方面出了问题,但就是不知道怎么解决了。。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2011-08-30 16:39 |只看该作者
    内核有编译过的~~

    我还用了另一个2.6.39的版本内核试了下,错误也差不多:
   
    make[2]: ***No rule to make target `/home/chaim/chaim/mymodules/mymod.o`, needed by `/home/chaim/chaim/mymodules/modules.o'. Stop
smallQ_nj 发表于 2011-08-30 15:47



    看着像是循环依赖。

论坛徽章:
0
5 [报告]
发表于 2011-08-30 16:23 |只看该作者
回复 4# MMMIX


obj-m := modules.o                  
modules-objs:= mymod.o        

KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)

default:
      make -C $(KDIR) M=$(PWD) modules

clean:
      rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP