日期:2014-05-16  浏览次数:20819 次

包含<asm/semaphore.h>后编译通不过???
我在程序中包含了<asm/semaphore.h>后运行   gcc   -c   -D__KERNEL__   -I/usr/src/linux/include   pc.c编译出错:
/usr/src/linux/include/asm/rwsem.h:   在函数   ‘__down_read’   中:
/usr/src/linux/include/asm/rwsem.h:106:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/rwsem.h:   在函数   ‘__down_write’   中:
/usr/src/linux/include/asm/rwsem.h:158:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/rwsem.h:   在函数   ‘__up_read’   中:
/usr/src/linux/include/asm/rwsem.h:195:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/rwsem.h:   在函数   ‘__up_write’   中:
/usr/src/linux/include/asm/rwsem.h:221:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/rwsem.h:   在函数   ‘__downgrade_write’   中:
/usr/src/linux/include/asm/rwsem.h:246:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’In   file   included   from   pc.c:7:
/usr/src/linux/include/asm/semaphore.h:   在函数   ‘down’   中:
/usr/src/linux/include/asm/semaphore.h:105:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/semaphore.h:   在函数   ‘down_interruptible’   中:
/usr/src/linux/include/asm/semaphore.h:130:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/semaphore.h:   在函数   ‘down_trylock’   中:
/usr/src/linux/include/asm/semaphore.h:155:   错误:expected   ‘:’   or   ‘)’   before   ‘KBUILD_BASENAME’/usr/src/linux/include/asm/semaphore.h:   在函数   ‘up’   中:
/usr/src/linux/include/asm/semaphore.h:179:   错误:expected   ‘:’   or   ‘)’   before  

请问是为什么?是否gcc还需加什么参数?还是要在编译内核时增加什么选项??

------解决方案--------------------
你在编译内核么?
那么就是头文件的位置,你取得不对
------解决方案--------------------
include中指定目录,看看还有没有错误