为什么我的程序源文件里不能包含内核头文件?
编写了一个内核程序,想先生成.o文件,然后再连接到其他文件生成.ko文件。 
 下面一层(这一层可以包含内核头文件)把linux内核中提供的函数做了封装,这一层只是对下面一层调用,现在想改一下,让本层直接用内核提供的函数,但一在源文件里加上包含内核头文件的语句(像#include <linux/sched.h> ),就提示找不到sched.h这个文件。估计是Makefile的问题,请大家帮忙看一下: 
 Makefile 
 --------------------------------------- 
 #source   file 
 SUBDIRS   := 
 SUBDIRS   :=   abc 
 SUBDIRS   :=   abcd 
 SUBDIRS   :=   abcde   
 AD_SRC   :=   $(foreach   subdir,   $(SUBDIRS),   $(wildcard   $(subdir)/*.c))   
 #obj   files 
 AD_OBJ   :=   $(AD_SRC:.c=.o)   
 #dependecy   files 
 AD_DEP   :=   $(AD_SRC:.c=.d)   
 #final   target 
 LIB_DIRS   =   $(CURDIR)/../lib 
 LIB_NAME   =   ad.o   
 #rules   to   make   the   objs   
 CC   =   gcc 
 LD   =   ld 
 MV   =   mv   
 CFLAGS   := 
 CFLAGS   :=   -I   $(CURDIR)/h 
 CFLAGS   :=   -I   $(CURDIR)/../h 
 CFLAGS   :=   -Wall   -Wstrict-prototypes   -Wno-trigraphs   -fno-strict-aliasing   -fno-common   -Os   -fomit-frame-pointer   -g   -Wdeclaration-after-statement   -pipe   -msoft-float   -m32   -fno-builtin-sprintf   -fno-builtin-log2   -fno-builtin-puts   -mpreferred-stack-boundary=2   -fno-unit-at-a-time   -march=i686   -mregparm=3   
 LDFLAGS   := 
 LDFLAGS   +=   -r   
 %.o   :   %.c 
                         @$(CC)   -M   -MT   $*.o   -c   $(CFLAGS)   $ <   -o   $*.d 
                         @$(CC)   -c   $(CFLAGS)   $ <   -o   $@   
 #final   target 
 all:   $(AD_OBJ) 
                         @$(LD)   $(LDFLAGS)   -o   $(LIB_NAME)   $(AD_OBJ) 
                         $(MV)   $(LIB_NAME)   $(LIB_DIRS)/$(addsuffix   _shipped,   $(LIB_NAME))   
 clean: 
                         rm   -f   $(AD_OBJ) 
                         rm   -f   $(AD_DEP)   
 #The   dependent   file   can   be   include   only   when   the   target   is   NOT    "clean " 
 ifeq(   ,   $(findstring   clean,   $(MAKECMDGOALS))) 
 -include   $(AD_DEP) 
 endif    
 ---------------------------------
------解决方案--------------------请指定内核源代码目录