我在ubuntu下make的时候出现错误啊!一个led的驱动程序,makefile如下:
ifneq ($(KERNELRELEASE),)
obj-m :=EmbedSky_gpio.o
else
KBUILD := /lib/modules/2.6.35-22-generic/build
modules:
make -C $(KBUILD) M=$(shell pwd) modules ARCH=arm COMPILE=arm-linux-
clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -rf .tmp_versions
endif
可是我make的时候总是出现这样的错误:
[email protected]:/usr/test# make
make -C /lib/modules/2.6.35-22-generic/build M=/usr/test modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
CC [M] /usr/test/EmbedSky_gpio.o
/usr/test/EmbedSky_gpio.c:11: fatal error: mach/regs-gpio.h: No such file or directory
compilation terminated.
make[2]: *** [/usr/test/EmbedSky_gpio.o] Error 1
make[1]: *** [_module_/usr/test] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
make: *** [modules] Error 2
请问是为什么啊?
------解决方案--------------------
regs-gpio.h这个文件找不到,如果在此目录确实有此文件,则需要把添加此目录添加到INCLUDE环境变量里
------解决方案--------------------
不同版本的linux内核,头文件的路径有差异,先在内核中找到这个文件,修改成正确的路径就可以了mach/regs-gpio.h
------解决方案--------------------
路径不对,,我在我的源码目录下有找到这个文件
/arch/arm/mach-s3c2410/include/mach/regs-gpio.h
仅供参考
------解决方案--------------------
估计你的EmbedSky_gpio.c文件里include这个文件了,mach/regs-gpio.h
但是路径指定的不正确。
像下面这样声明的吗?
#include <mach/regs-gpio.h>
------解决方案--------------------
头文件没有找到。试着把头文件的路径改一下。就OK了,我以前也经常是这样子,要不把此头文件注释掉,试一下,说不定就OK了