免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4011 | 回复: 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

论坛徽章:
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
2 [报告]
发表于 2011-08-29 17:18 |只看该作者
回复 1# smallQ_nj


    编译 Linux kernel 模块之前编译过 kernel 本身了没有?没有的话先编译下 kernel 然后再编译模块试试。

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


    内核有编译过的~~

    我还用了另一个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
    make[1]: ***[_module_/home/chaim/chaim/mymodules] Error 2

论坛徽章:
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
4 [报告]
发表于 2011-08-30 16:22 |只看该作者
回复  MMMIX


    内核有编译过的~~

    我还用了另一个2.6.39的版本内核试了下,错误也差不多:
...
smallQ_nj 发表于 2011-08-30 15:47



    你的模块对应的 Makefile 有了麼?怎么写的?

论坛徽章:
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

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


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

论坛徽章:
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

论坛徽章:
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 和源文件就没有对应关系,不是瞎写吗?

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


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

    关于makefile,我还有好多不懂,自己来写估计还有难度
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP