免费注册 查看新帖 |

Chinaunix

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

ldd第一个程序的Makefile [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-12 18:45 |只看该作者 |倒序浏览
   这两天,主要是看一些linux内核的模块加载,基本上是按照ldd上面的说法做,几经折腾,算是将第一个程序hello.c用模块的方式加载成功。
  由于我没有借到中文版的ldd这本书,我借了一本英文原版书籍,这可是对我的一个大的挑战,我英语确实是还没有达到能够将原版的书籍读懂的境界,但是现在就没有办法了,我去年四月份就试着看《uinx环境高级编程》的英文原版书,但是压力太大,又由于一些其他事情的干扰,一直就处于一种半明白状态,最后还是不得不放弃了。该看中文的,但是由于去年发生了太多没有想到的事,加上学习策略的失误。现在是感觉还没有达到预想的目标,一直拖到了现在。呵呵,说多了。现在我将如何编译好第一个模块程序的实例过程如下:
1.先按照ldd上面的描述将hello.c编译好。
2.编写Makefile,由于在2.6的内核中,Makefile的编写与2.4的有很大差别,ldd上面也没有很明确的Makefile。我也是参考了国内的一本linux实验教程而编写的。编写内容如下:
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
具体的解释我也不多说了,在ldd这本书上已经有了描述。
3.在终端下运行/sbin/insmod hello.ko。就会在下面显示你所要想显示的东西了。呵呵。
4.在终端下卸载用命令/sbin/rmmod hello.ko。
  总结,在这个整个过程中,我也算是成功了,但是还是有很多疑问,首先,这两个主要句子的含义我还是不太明白,基本上是照抄人家的。
第二,我想在Makefile里实现直接就用make install命令加载模块,但是没有成功。我看了一下内核的那个Makefile,但是我还是没有找到真正的路线。
第三,我对模块加载方面的具体流程和工作方式还是没有理解,还需要花时间来看和理解。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/60749/showart_1860649.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP