打印

请教linux驱动的高手指点

[复制链接]
1222|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songbw|  楼主 | 2008-7-8 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编了一个很小的程序,是参考阿南的《嵌入式linux入门笔记》

编写hello.c

#define MODULE
#include <linux/module.h>
int init_module(void){
printk("<1>hello world ! ");
return 0
}

void cleanup_module(void)
{
printk("<1>goodbye cruel world!  ");
}

Makefile文件为:
CROSS=/tools/3.4.1/bin/arm-linux-gcc
INCPATH=/tools/2.6.8.1/include
all:hello
hello:
         $(CROSS) -I$(INCPATH) -o hello hello.c
clean:
         rm -rf hello *.o

我的交叉编译工具安装在tools下,文件名为3.4.1
linux源代码是2.6.8.1的,安装在tools下的2.6.8.1文件下。
执行make后,出现的错误足足有好几页,这个例子是参考阿南来做的,高手指点下到底哪里出了问题?

相关帖子

沙发
songbw|  楼主 | 2008-7-8 11:17 | 只看该作者

我的里linux系统版本是fedora 8

上网查了一下即使最简单的helloworld,也是好多人都出错啊,看来学习linux还真是有难度。

使用特权

评论回复
板凳
阿南| | 2008-7-8 12:37 | 只看该作者

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

使用特权

评论回复
地板
icecut| | 2008-7-8 13:35 | 只看该作者

FC

1.确认链接的头文件是内核头文件,不是普通的头文件.
2.MODULE是不是有__啊??

莫名其妙的问题大多由头文件导致.

使用特权

评论回复
5
songbw|  楼主 | 2008-7-8 13:52 | 只看该作者

回六楼的高手

1.我的makefile里的INCPATH=/tools/2.6.8.1/include已经算是指到内核里面了吧。
2.我的module前后都没加__,阿南的文档里面就没有加啊。

还有#define __KERNEL__这句:
前后的下划线是不是要两次?
像这种(下划线)(下划线)KERNEL(下划线)(下划线)?

使用特权

评论回复
6
l0p0c| | 2008-7-8 14:01 | 只看该作者

学习了……

使用特权

评论回复
7
songbw|  楼主 | 2008-7-8 14:51 | 只看该作者

找到问题所在了

就是这句了         $(CROSS) -I$(INCPATH) -o hello hello.c
改成 $(CROSS) -I$(INCPATH) -c hello.c -o hello.o就可以了

阿南的文档是$(CROSS)c -I$(INCPATH) hello.c
好像也不能编译过去,是不是笔误啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

粉丝