Fix it to use EXTRA_CFLAGS. Stop.

1). # make KBUILD_NOPEDANTIC=1
2). Relace all CFLAGS with EXTRA_CFLAGS in the Makefile

 

==================================================

将makefile中的 CFLAGS 替换成 EXTRA_CFLAGS就可以了。

原因是在2.6的内核的版本中所有的 EXTRA_ 变量只在所定义的Kbuild Makefile中起作用。

EXTRA_ 变量可以在Kbuild Makefile中所有命令中使用。  

$(EXTRA_CFLAGS) 是用 $(CC) 编译C源文件时的选项。  

例子:        

# drivers/sound/emu10kl/Makefile       

EXTRA_CFLAGS += -I$(obj)       

ifdef DEBUG          

EXTRA_CFLAGS += -DEMU10KL_DEBUG       

endif   

该变量是必须的,因为顶层Makefile拥有变量 $(CFLAGS)并用来作为整个源代码树的编译选项。 

 

===================================================

For the "Linux device driver III", the example of "chapter4":
Delete the <linux/config.h>
Add the <linux/sched.h>

Ok, now change into its derectory and complile it like this:

[root@localhost scull]# make
make -C /lib/modules/2.6.24.2-2lp/buildM=/root/Desktop/examples/scullLDDINC=/root/Desktop/examples/scull/../include modules
make[1]: Entering directory`/usr/src/kernels/2.6.24.2-2lp-i686'
scripts/Makefile.build:46: *** CFLAGS waschanged in "/root/Desktop/examples/scull/Makefile". Fix it to useEXTRA_CFLAGS. Stop.
make[1]: *** [_module_/root/Desktop/examples/scull] Error 2
make[1]: Leaving directory`/usr/src/kernels/2.6.24.2-2lp-i686'
make: *** [modules] Error 2

There are two kind of method to solve this problem:

(1)Rplace all CFLAGS with EXTRA_CFLAGS in the Makefile.

(2)Using the KBUILD_NOPEDANTIC arg
[root@localhost scull]# makeKBUILD_NOPEDANTIC=1
make -C /lib/modules/2.6.24.2-2lp/buildM=/root/Desktop/examples/scullLDDINC=/root/Desktop/examples/scull/../include modules
make[1]: Entering directory`/usr/src/kernels/2.6.24.2-2lp-i686'
CC [M] /root/Desktop/examples/scull/main.o
CC [M] /root/Desktop/examples/scull/pipe.o
CC [M] /root/Desktop/examples/scull/access.o
LD [M] /root/Desktop/examples/scull/scull.o
Building modules, stage 2.
MODPOST 1 modules
CC     /root/Desktop/examples/scull/scull.mod.o
LD [M] /root/Desktop/examples/scull/scull.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.24.2-2lp-i686'


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值