免费注册 查看新帖 |

Chinaunix

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

[编程问题]请教高手一个hello kernel的编译问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-24 17:39 |只看该作者 |倒序浏览
刚刚看了begining linux programming 这本书,书上有个例子,是一个hello kernel的入门例子,我把代码打到我的fedora core6中,执行:

gcc -D__KERNEL__ -I /usr/src/kernels/2.6.18-1.2798.fc6-i586/include -DMODULE -Wall -O2 -c hello.c -o hello.o

但是弹出很多错误:
In file included from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/asm/thread
_info.h:16,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/thre
ad_info.h:21,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/pree
mpt.h:9,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/spin
lock.h:49,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/capa
bility.h:45,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/sche
d.h:44,
                 from /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/modu
le.h:9,
                 from hello.c:1:
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/asm/processor.h:80: 错误:‘CONFI
G_X86_L1_CACHE_SHIFT’ 未声明 (不在函数内)
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/asm/processor.h:80: 错误:要求的
对齐边界不是常量
在包含自 /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/sched.h:49 的文
件中,
                 从 /usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/module
.h:9,
                 从 hello.c:1:
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:33:3: 错误:#err
or You lose.
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31: 错误:#i
f 中用零做除数
/usr/src/kernels/2.6.18-1.2798.fc6-i586/include/linux/jiffies.h:210:31:

论坛徽章:
0
2 [报告]
发表于 2008-02-25 20:28 |只看该作者
你先把这一段

#if defined(CONFIG_SMP)
#define __SMP__
#endif

#if defined(CONFIG_MODVERSIONS)
#define MODVERSIONS
#include <linux/modversions.h>
#endif

去掉,然后重新编译试试?

论坛徽章:
0
3 [报告]
发表于 2008-03-05 16:11 |只看该作者
我都是用Makefile, make -C=xxx M=... modules
不知道用gcc命令怎么编译,哪位知道的指点一下啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP