I want to be a complete engineer - technical genius and sensitive humanist all in one!

Thursday, December 4, 2008

compiler error:KBUILD_NOPEDANTIC & Fix it to use EXTRA_CFLAGS

For the "Linux device driver III", the example of all

Delete the //include/config.h
Add the //include/sched.h

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

root@microtiger-tiger:/home/microtiger/test/examples/scull# make
make -C /lib/modules/2.6.24-22-generic/build M=/home/microtiger/test/examples/scull LDDINC=/home/microtiger/test/examples/scull/../include modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-22-generic'
scripts/Makefile.build:46: *** CFLAGS was changed in "/home/microtiger/test/examples/scull/Makefile". Fix it to use EXTRA_CFLAGS. Stop.
make[1]: *** [_module_/home/microtiger/test/examples/scull] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-22-generic'
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@microtiger-tiger:/home/microtiger/test/examples/scull# make KBUILD_NOPEDANTIC=1
make -C /lib/modules/2.6.24-22-generic/build M=/home/microtiger/test/examples/scull LDDINC=/home/microtiger/test/examples/scull/../include modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-22-generic'
CC [M] /home/microtiger/test/examples/scull/access.o
LD [M] /home/microtiger/test/examples/scull/scull.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/microtiger/test/examples/scull/scull.mod.o
LD [M] /home/microtiger/test/examples/scull/scull.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-22-generic'

No comments:

Labels

Followers