免费注册 查看新帖 |

Chinaunix

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

一个有关头文件sched.h的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-23 16:28 |只看该作者 |倒序浏览
我在编写与内核有关的程序时,只要嵌入头文件sched.h,编译时就会出现一大堆错误,下面是一个最简单的例子:
#include <linux/kernel.h>;
#include <unistd.h>;
#include <stdio.h>;
#include <linux/sched.h>;
int main(){
printf("\n";
}
redhat 8.0,在root下运行:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.18-14/include test.c -o test
出现大量错误,都与系统在sched.h文件中嵌入的头文件,timer.h,time.h等有关,具体错误如下:
In file included from /usr/include/bits/types.h:143,
                 from /usr/include/sys/types.h:30,
                 from t.c:3:
/usr/include/bits/pthreadtypes.h:48: parse error before "size_t"
/usr/include/bits/pthreadtypes.h:51: parse error before "__stacksize"
In file included from /usr/include/sys/types.h:132,
                 from t.c:3:
/usr/src/linux-2.4.18-14/include/linux/time.h:10: parse error before "time_t"
/usr/src/linux-2.4.18-14/include/linux/time.h:12: parse error before '}' token
/usr/src/linux-2.4.18-14/include/linux/time.h:89: parse error before "time_t"
/usr/src/linux-2.4.18-14/include/linux/time.h:120: field `it_interval' has incomplete type
/usr/src/linux-2.4.18-14/include/linux/time.h:121: field `it_value' has incomplete type
/usr/src/linux-2.4.18-14/include/linux/time.h:125: field `it_interval' has incomplete type
/usr/src/linux-2.4.18-14/include/linux/time.h:126: field `it_value' has incomplete type
In file included from /usr/src/linux-2.4.18-14/include/linux/sched.h:13,
                 from t.c:4:
/usr/include/linux/times.h:5: parse error before "clock_t"
/usr/include/linux/times.h:7: parse error before "tms_cutime"
/usr/include/linux/times.h:8: parse error before "tms_cstime"
In file included from t.c:4:
/usr/src/linux-2.4.18-14/include/linux/sched.h:15:26: linux/rbtree.h: No such file or directory
In file included from /usr/include/linux/bitops.h:69,
                 from /usr/include/asm/system.h:7,
                 from /usr/src/linux-2.4.18-14/include/linux/sched.h:17,
                 from t.c:4:
/usr/include/asm/bitops.h:333:2: warning: #warning This includefile is not available on all architectures.
/usr/include/asm/bitops.h:334:2: warning: #warning Using kernel headers in userspace.
In file included from /usr/include/linux/signal.h:4,
                 from /usr/src/linux-2.4.18-14/include/linux/sched.h:26,
                 from t.c:4:
/usr/include/asm/signal.h:119: parse error before "size_t"
In file included from /usr/include/linux/signal.h:5,
                 from /usr/src/linux-2.4.18-14/include/linux/sched.h:26,
                 from t.c:4:
/usr/include/asm/siginfo.h:48: parse error before "clock_t"
/usr/include/asm/siginfo.h:62: parse error before '}' token
/usr/include/asm/siginfo.h:63: parse error before '}' token
In file included from t.c:4:
/usr/src/linux-2.4.18-14/include/linux/sched.h:29:31: linux/low-latency.h: No such file or directory
In file included from /usr/src/linux-2.4.18-14/include/linux/sched.h:86,
                 from t.c:4:
/usr/include/linux/timer.h:32: field `vec' has incomplete type
/usr/include/linux/timer.h:37: field `vec' has incomplete type
/usr/include/linux/timer.h:45: parse error before "spinlock_t"
/usr/include/linux/timer.h:53: parse error before '}' token
/usr/include/linux/timer.h:63: field `list' has incomplete type
/usr/include/linux/timer.h:67: parse error before "tvec_base_t"
/usr/include/linux/timer.h:101: parse error before "tvec_bases"
/usr/include/linux/timer.h: In function `init_timer':
/usr/include/linux/timer.h:105: dereferencing pointer to incomplete type
/usr/include/linux/timer.h:105: dereferencing pointer to incomplete type
/usr/include/linux/timer.h:106: dereferencing pointer to incomplete type
/usr/include/linux/timer.h: In function `timer_pending':
/usr/include/linux/timer.h:121: dereferencing pointer to incomplete type
请问该如何解决?

论坛徽章:
0
2 [报告]
发表于 2003-04-23 17:32 |只看该作者

一个有关头文件sched.h的问题

老兄,你这个80%都是程序的语法错误!看看c语言的书吧!

论坛徽章:
0
3 [报告]
发表于 2003-04-23 19:35 |只看该作者

一个有关头文件sched.h的问题

不好意思,可能是贴子发得太长了,让人不耐烦看,这样吧,我把问题说得再简单,编译程序出现的一大段错误中,没有一点是main()程序中的语法错误,这些错误都与sched.h有关,如果把sched.h文件去掉,这完全是一个正确的程序.
     因此,可能是嵌入sched.h文件需要做什么工作,请有linux内核编程经验的高手指教,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP