
-I/usr/src/linux-headers-2.6.32-24/include
一般也很少直接用gcc命令, 大部分是用makefile, make -C kernel_path modules
你的 /lib/modules/`uname -r`/build 指向哪里?如果不存在请建立一个sym link指向你的kernel header directory:
/lib/modules/`uname -r`/build ->/usr/src/linux-headers-2.6.31-14/
Ref here:
http://www.linuxquestions.org/questions/debian-26/gcc-giving-error-linux-init-h-no-such-file-or-directory-927068/
在做驱动时,往往想编译成模块,让后加载来使用,这样灵活性较高,无需重新编译内核。然后在使用供应商提供的内核时,往往无法编译成内核。也就是说把宏设置为y,编译进内核没有问题,但是设置成m编译成模块却不行。检查很多地方都不行,实际上这个问题很简单,可就这个简单的问题,搞了我一天,真心伤啊,这里做个记录做谨记。
解决的办法很简单,看看在执行内核make的时候是否添加了modules参数,如下面的形式:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-cortex_a9-linux-gnueabi-
如果不能编译,是不是发现没有modules这个参数呢。添加上问题解决。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)