如何在内核模块Makefile中提供include目录路径

时间:2018-05-11 06:34:33

标签: linux makefile linux-kernel linux-device-driver kernel-module

我正在使用一个小的演示内核模块学习内核中断 使用这两个标题包括

  

ASM / exception.h
   ASM /马赫/ irq.h

我的Makefile是

ifeq (${KERNELRELEASE},)

    KERNEL_SOURCE := /lib/modules/$(shell uname -r)/build

    PWD := $(shell pwd)


default:
    make    -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules 

clean:
    make    -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean



else

obj-m := irq_demo.o

endif

我得到的错误

irq_demo.c:9:27: fatal error: asm/exception.h: No such file or directory
 #include <asm/exception.h>

我在/usr/src/linux-headers-3.16.0-30-generic/arch/arm/include /

的系统中找到了asm / exception.h
  • [1]但如何在Makefile中包含此路径

  • [2] /usr/src/linux-headers-3.16.0-30-generic/include/asm-generic/与arch / arm / include / asm /?相关联?如果是,那么如何?

1 个答案:

答案 0 :(得分:0)

首先尝试 在make之后添加ARCH = arm 即

make ARCH=arm -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules 

============================= OR ================= ============

你可以尝试在make之前添加行吗

CARGS = -I /lib/modules/$(shell uname -r)/arch/arm/include/
make  $(CARGS) -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules