求助:内核hello.c编译不过去!

编译打包和其他
回复
daniudaniu
帖子: 47
注册时间: 2007-10-21 19:34

求助:内核hello.c编译不过去!

#1

帖子 daniudaniu » 2008-04-17 14:36

最近开始学习内核编程,练习了hello.c那个程序可是编译时出现了很多问题,这是怎么回事呢?

gcc -D__KERNEL__ -I/usr/src/linux-headers-2.6.22-14-generic/include -DMODULE -Wall -O2 -c -o hello.o hello.c
In file included from /usr/src/linux-headers-2.6.22-14-generic/include/asm/thread_info.h:16,
from /usr/src/linux-headers-2.6.22-14-generic/include/linux/thread_info.h:21,
from /usr/src/linux-headers-2.6.22-14-generic/include/linux/preempt.h:9,
from /usr/src/linux-headers-2.6.22-14-generic/include/linux/spinlock.h:49,
from /usr/src/linux-headers-2.6.22-14-generic/include/linux/module.h:9,
from hello.c:4:
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:83: 错误: ‘CONFIG_X86_L1_CACHE_SHIFT’ 未声明 (不在函数内)
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:83: 错误: 要求的对齐边界不是常量
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h: 在函数 ‘cpuid_count’ 中:
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:618: 警告: 传递参数 1 (属于 ‘native_cpuid’) 给指针时目标与指针有/无符号不一致
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:618: 警告: 传递参数 2 (属于 ‘native_cpuid’) 给指针时目标与指针有/无符号不一致
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:618: 警告: 传递参数 3 (属于 ‘native_cpuid’) 给指针时目标与指针有/无符号不一致
/usr/src/linux-headers-2.6.22-14-generic/include/asm/processor.h:618: 警告: 传递参数 4 (属于 ‘native_cpuid’) 给指针时目标与指针有/无符号不一致
在包含自 /usr/src/linux-headers-2.6.22-14-generic/include/linux/module.h:21 的文件中,
从 hello.c:4:
/usr/src/linux-headers-2.6.22-14-generic/include/asm/module.h:64:2: 错误: #error unknown processor family
make: *** [hello.o] 错误 1

我看网上说安装kernel-kbuild什么的,但是kernel-kbuild更新都更新不到阿?

还有就是:我进行一下命令出现这样的结果,不知道是什么意思?
cuiyu@cuiyu-desktop:~/Kernel/hello$ sudo apt-get install kernel-headers
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
Reading state information... 完成
现在没有可用的软件包 kernel-headers,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 软件包 kernel-headers 还没有可供安装的候选者
daniudaniu
帖子: 47
注册时间: 2007-10-21 19:34

还有就是下面的

#2

帖子 daniudaniu » 2008-04-17 14:37

cuiyu@cuiyu-desktop:~/Kernel/hello$ sudo apt-get install linux-kernel-headers
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
Reading state information... 完成
软件包 linux-kernel-headers 是一个由下面的软件包提供的虚拟软件包:
linux-libc-dev 2.6.22-14.52
请您明确地选择一个来进行安装。
E: 软件包 linux-kernel-headers 还没有可供安装的候选者
kmeng
帖子: 85
注册时间: 2007-03-08 9:57
来自: Rockville MD
联系:

#3

帖子 kmeng » 2008-04-18 6:18

先装这个呢?
sudo apt-get install linux-libc-dev
回复