当前位置: 代码迷 >> 驱动开发 >> linux下make出现异常
  详细解决方案

linux下make出现异常

热度:407   发布时间:2016-04-28 11:22:55.0
linux下make出现错误
我在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了
  相关解决方案