- 论坛徽章:
- 0
|
本帖最后由 qiangtoucao121 于 2011-12-29 14:21 编辑
我现在想直接编译Linux内核中的在drvier/gpio/下的gpio单独的驱动程序,当我编译时,显示缺少gpiolib的库,请问我该如何写自己的Makefile才能让编译成功,谢谢!
我的Makefile如下:
1 ifneq ($(KERNELRELEASE),)
2 # support-y := ./gpiolib.o
3 obj-m := gpio-sch.o
4 support-y := gpiolib.o
5 else
6 KERNELDIR ?= /lib/modules/$(shell uname -r)/build
7 PWD := $(shell pwd)
8 default:
9 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules -I/home/fxg/linux-2.6.32/include
10 endif
make后报错如下:
make -C /lib/modules/2.6.32-71.el6.x86_64/build M=/home/fxg/test/drivers/gpio modules -I/home/fxg/linux-2.6.32/include
make[1]: Entering directory `/usr/src/kernels/2.6.32-71.el6.x86_64'
CC [M] /home/fxg/test/drivers/gpio/gpio-sch.o
/home/fxg/test/drivers/gpio/gpio-sch.c:44: warning: ‘struct gpio_chip’ declared inside parameter list
/home/fxg/test/drivers/gpio/gpio-sch.c:44: warning: its scope is only this definition or declaration, which is probably not what you want
/home/fxg/test/drivers/gpio/gpio-sch.c:63: warning: ‘struct gpio_chip’ declared inside parameter list
/home/fxg/test/drivers/gpio/gpio-sch.c:75: warning: ‘struct gpio_chip’ declared inside parameter list
/home/fxg/test/drivers/gpio/gpio-sch.c:95: warning: ‘struct gpio_chip’ declared inside parameter list
/home/fxg/test/drivers/gpio/gpio-sch.c: In function ‘sch_gpio_core_direction_out’:
/home/fxg/test/drivers/gpio/gpio-sch.c:100: warning: passing argument 1 of ‘sch_gpio_core_set’ from incompatible pointer type
/home/fxg/test/drivers/gpio/gpio-sch.c:75: note: expected ‘struct gpio_chip *’ but argument is of type ‘struct gpio_chip *’
/home/fxg/test/drivers/gpio/gpio-sch.c: At top level:
/home/fxg/test/drivers/gpio/gpio-sch.c:115: error: variable ‘sch_gpio_core’ has initializer but incomplete type
/home/fxg/test/drivers/gpio/gpio-sch.c:116: error: unknown field ‘label’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:116: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:116: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:117: error: unknown field ‘owner’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:117: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:117: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:118: error: unknown field ‘direction_input’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:118: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:118: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:119: error: unknown field ‘get’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:119: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:119: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:120: error: unknown field ‘direction_output’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:120: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:120: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:121: error: unknown field ‘set’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:121: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:121: warning: (near initialization for ‘sch_gpio_core’)
/home/fxg/test/drivers/gpio/gpio-sch.c:179: error: variable ‘sch_gpio_resume’ has initializer but incomplete type
/home/fxg/test/drivers/gpio/gpio-sch.c:180: error: unknown field ‘label’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:180: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:180: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c:181: error: unknown field ‘owner’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:181: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:181: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c:182: error: unknown field ‘direction_input’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:182: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:182: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c:183: error: unknown field ‘get’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:183: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:183: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c:184: error: unknown field ‘direction_output’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:184: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:184: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c:185: error: unknown field ‘set’ specified in initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:185: warning: excess elements in struct initializer
/home/fxg/test/drivers/gpio/gpio-sch.c:185: warning: (near initialization for ‘sch_gpio_resume’)
/home/fxg/test/drivers/gpio/gpio-sch.c: In function ‘sch_gpio_probe’:
/home/fxg/test/drivers/gpio/gpio-sch.c:208: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:209: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:211: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:212: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:227: error: ‘PCI_DEVICE_ID_INTEL_ITC_LPC’ undeclared (first use in this function)
/home/fxg/test/drivers/gpio/gpio-sch.c:227: error: (Each undeclared identifier is reported only once
/home/fxg/test/drivers/gpio/gpio-sch.c:227: error: for each function it appears in.)
/home/fxg/test/drivers/gpio/gpio-sch.c:228: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:229: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:231: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:232: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:239: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:240: error: invalid use of undefined type ‘struct gpio_chip’
/home/fxg/test/drivers/gpio/gpio-sch.c:242: error: implicit declaration of function ‘gpiochip_add’
/home/fxg/test/drivers/gpio/gpio-sch.c:253: error: implicit declaration of function ‘gpiochip_remove’
make[2]: *** [/home/fxg/test/drivers/gpio/gpio-sch.o] Error 1
make[1]: *** [_module_/home/fxg/test/drivers/gpio] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.32-71.el6.x86_64'
make: *** [default] Error 2
恳请指点,谢谢!!!!!!! |
|