请教linux驱动的高手指点

[复制链接]
2581|6
 楼主| songbw 发表于 2008-7-8 11:15 | 显示全部楼层 |阅读模式
编了一个很小的程序,是参考阿南的《嵌入式linux入门笔记》<br /><br />编写hello.c<br /><br />#define&nbsp;MODULE<br />#include&nbsp;&ltlinux/module.h&gt<br />int&nbsp;init_module(void){<br />printk(&quot;&lt1&gthello&nbsp;world&nbsp;!
&quot;);<br />return&nbsp;0<br />}<br /><br />void&nbsp;cleanup_module(void)<br />{<br />printk(&quot;&lt1&gtgoodbye&nbsp;cruel&nbsp;world!&nbsp;
&quot;);<br />}<br /><br />Makefile文件为:<br />CROSS=/tools/3.4.1/bin/arm-linux-gcc<br />INCPATH=/tools/2.6.8.1/include<br />all:hello<br />hello:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(CROSS)&nbsp;-I$(INCPATH)&nbsp;-o&nbsp;hello&nbsp;hello.c<br />clean:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rm&nbsp;-rf&nbsp;hello&nbsp;*.o<br /><br />我的交叉编译工具安装在tools下,文件名为3.4.1<br />linux源代码是2.6.8.1的,安装在tools下的2.6.8.1文件下。<br />执行make后,出现的错误足足有好几页,这个例子是参考阿南来做的,高手指点下到底哪里出了问题?<br />
 楼主| songbw 发表于 2008-7-8 11:17 | 显示全部楼层

我的里linux系统版本是fedora 8

上网查了一下即使最简单的helloworld,也是好多人都出错啊,看来学习linux还真是有难度。
阿南 发表于 2008-7-8 12:37 | 显示全部楼层

呵呵,楼主把错误信息发上来看看吧

  
icecut 发表于 2008-7-8 13:35 | 显示全部楼层

FC

1.确认链接的头文件是内核头文件,不是普通的头文件.<br />2.MODULE是不是有__啊??<br /><br />莫名其妙的问题大多由头文件导致.
 楼主| songbw 发表于 2008-7-8 13:52 | 显示全部楼层

回六楼的高手

1.我的makefile里的INCPATH=/tools/2.6.8.1/include已经算是指到内核里面了吧。<br />2.我的module前后都没加__,阿南的文档里面就没有加啊。<br /><br />还有#define&nbsp;__KERNEL__这句:<br />前后的下划线是不是要两次?<br />像这种(下划线)(下划线)KERNEL(下划线)(下划线)?
l0p0c 发表于 2008-7-8 14:01 | 显示全部楼层

学习了……

  
 楼主| songbw 发表于 2008-7-8 14:51 | 显示全部楼层

找到问题所在了

就是这句了&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(CROSS)&nbsp;-I$(INCPATH)&nbsp;-o&nbsp;hello&nbsp;hello.c<br />改成&nbsp;$(CROSS)&nbsp;-I$(INCPATH)&nbsp;-c&nbsp;hello.c&nbsp;-o&nbsp;hello.o就可以了<br /><br />阿南的文档是$(CROSS)c&nbsp;-I$(INCPATH)&nbsp;hello.c<br />好像也不能编译过去,是不是笔误啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部