LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1079|回复: 9

新手求助!!

[复制链接]
发表于 2006-3-28 22:10:44 | 显示全部楼层 |阅读模式
用gcc编译linux/sched.h时出错,它是linux内核的头文件,按理说是不应该错的。应该怎么处理,请高手指点,谢谢!
发表于 2006-3-28 22:41:50 | 显示全部楼层
?? 你干吗要编译一个头文件? 而且还是内核代码里面的
回复 支持 反对

使用道具 举报

发表于 2006-3-29 12:10:15 | 显示全部楼层
头文件怎么能编译呢??
回复 支持 反对

使用道具 举报

发表于 2006-3-30 11:54:03 | 显示全部楼层
gcc可以编译头文件,在gcc 3.4里面就已经有了预编译头的支持。
我怀疑是找不到包含路径。麻烦楼主把你的具体操作和gcc报的错误信息贴出来。信息不足,没法帮你。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-1 09:15:38 | 显示全部楼层

哦,是我没说清楚。

我编的程序有三个中断,linux要用request_irq()注册中断,而request_irq()是在linux/sched.h中声明,因此要加上#include <linux/sched.h>,用gcc编译时总是在这个头文件中出错,请大家指教,谢谢!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 08:50:17 | 显示全部楼层

殷切期盼回复

哪位专家能帮小弟个忙,万分感谢!!
回复 支持 反对

使用道具 举报

发表于 2006-4-3 16:38:19 | 显示全部楼层
why will you use interrupt in your application program?
I think you like to make a new module for your kernel, aren't you?
回复 支持 反对

使用道具 举报

发表于 2006-4-4 08:49:55 | 显示全部楼层
还是不知道具体的出错信息啊,贴出来吧,就是error...的那段
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-4 10:05:25 | 显示全部楼层

那样应该怎么办?

我的程序最终要烧录到arm板中运行,它是一个控制程序。我的程序实现的功能是:三个中断分别是两个串口和一个定时器。两个串口给被控对象发送指令,定时器中断中执行控制算法。之所以没用内核提供的定时器,是因为其时间间隔达不到要求。程序运行时,每次时钟中断都执行控制算法,只不过串口没发指令时,已经满足控制要求,被控对象不用再控制。串口发指令时,时钟中断再控制被控对象满足控制要求。
下面是我用gcc -D__KERNEL__ -Iusr/src/linux-2.4.20-8/include -o control control.c 后出现的错误(还有很多warning我没贴上),不用-D__KERNEL__就无法调用request_irq()
这些错都是在linux/sched.h中出现的
In file included from /usr/src/linux-2.4.20-8/include/linux/signal.h:5,
                 from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
                 from control.c:9:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: parse error before "clock_t"
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:49: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:50: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:62: parse error before '}' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:62: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:63: parse error before '}' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:63: warning: data definition has no type or storage class
In file included from /usr/src/linux-2.4.20-8/include/linux/signal.h:5,
                 from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
                 from control.c:9:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:220: parse error before '*' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h: In function `copy_siginfo':
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: `from' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: (Each undeclared identifier is reported only once
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: for each function it appears in.)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:223: `to' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h: At top level:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:229: parse error before '*' token
In file included from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
                 from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/signal.h:14: parse error before "siginfo_t"
/usr/src/linux-2.4.20-8/include/linux/signal.h:14: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/signal.h:225: parse error before '*' token
In file included from /usr/src/linux-2.4.20-8/include/linux/sched.h:97,
                 from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/time.h: At top level:
/usr/src/linux-2.4.20-8/include/linux/time.h:9: redefinition of `struct timespec'
/usr/src/linux-2.4.20-8/include/linux/time.h:88: redefinition of `struct timeval'
/usr/src/linux-2.4.20-8/include/linux/sched.h:293: field `core_done' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:460: field `times' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:461: field `group_times' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:472: parse error before "kernel_cap_t"
/usr/src/linux-2.4.20-8/include/linux/sched.h:472: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/sched.h:473: parse error before ':' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:524: parse error before '*' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:524: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/linux/sched.h:525: parse error before '}' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:685: field `task' has incomplete type
In file included from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/sched.h:742: parse error before "siginfo_t"
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `signal_pending':
/usr/src/linux-2.4.20-8/include/linux/sched.h:766: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `on_sig_stack':
/usr/src/linux-2.4.20-8/include/linux/sched.h:773: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:773: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `sas_ss_flags':
/usr/src/linux-2.4.20-8/include/linux/sched.h:778: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `suser':
/usr/src/linux-2.4.20-8/include/linux/sched.h:803: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:804: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `fsuser':
/usr/src/linux-2.4.20-8/include/linux/sched.h:812: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:813: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `capable':
/usr/src/linux-2.4.20-8/include/linux/sched.h:828: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:833: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `thread_group_empty':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1036: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `task_lock':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1049: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `get_task_mm':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1068: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `d_path':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1083: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1084: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1084: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h:1085: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1085: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h:1087: `dcache_lock' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/linux/sched.h:1088: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `set_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1097: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `clear_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1102: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `set_tsk_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1107: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `clear_tsk_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1112: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1117: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/mm.h:31,
                 from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:5,
                 from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
                 from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/swap.h: At top level:
/usr/src/linux-2.4.20-8/include/linux/swap.h:66: parse error before "kdev_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:66: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/swap.h:79: parse error before '}' token
/usr/src/linux-2.4.20-8/include/linux/swap.h:167: parse error before "swp_entry_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:176: parse error before "swp_entry_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:181: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:182: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:191: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:193: parse error before "get_swap_page"
/usr/src/linux-2.4.20-8/include/linux/swap.h:193: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/linux/swap.h:194: parse error before "unsigned"
/usr/src/linux-2.4.20-8/include/linux/swap.h:196: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:197: parse error before "unsigned"
/usr/src/linux-2.4.20-8/include/linux/swap.h:198: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:199: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:245: parse error before "entry"
In file included from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:5,
                 from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
                 from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/mm.h:575: warning: `struct inode' declared inside parameter list
/usr/src/linux-2.4.20-8/include/linux/mm.h:609: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/mm.h: In function `pf_gfp_mask':
/usr/src/linux-2.4.20-8/include/linux/mm.h:719: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/mm.h: In function `expand_stack':
/usr/src/linux-2.4.20-8/include/linux/mm.h:739: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/mm.h:740: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/highmem.h:5,
                 from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:8,
                 from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
                 from control.c:10:
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_mm':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:85: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_page':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:92: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_range':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:99: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:8,
                 from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
                 from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kmap':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:20: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kunmap':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:25: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kmap_irq':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:41: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:41: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:42: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:48: dereferencing pointer to incomplete type
In file included from control.c:12:
/usr/include/string.h: At top level:
/usr/include/string.h:39: parse error before '?' token
/usr/include/string.h:58: parse error before '?' token
回复 支持 反对

使用道具 举报

发表于 2006-4-4 10:46:33 | 显示全部楼层
会不会是gcc 的版本的问题? gcc4.0 以上恐怕是不行吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表