make编译内核代码失败
发表于 : 2019-09-23 22:51
文件结构如下:
.
├── calc
│ ├── add_sub.c
│ └── Makefile
├── include
│ └── add_sub.h
├── Makefile
└── test.c
add_sub.c中定义了add_integer 和sub_integer两个函数供test.c中调用,对应的add_sub.h在include中定义
#include <linux/init.h>
#include <linux/module.h>
#include <add_sub.h>
long add_integer(int a,int b)
{
return a+b;
}
long sub_integer(int a, int b)
{
return a-b;
}
EXPORT_SYMBOL(add_integer);
EXPORT_SYMBOL(sub_integer);
calc中的Makefile如下:
obj-m:=add_sub.o
CURRENT_PATH:=$(shell pwd)
LINUX_KERNEL:=$(shell uname -r)
LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)
PRINT_INC=$(dir $(CURRENT_PATH))include
EXTRA_CFLAGS += -I$(PRINT_INC)
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
make的时候提示找不到add_sub.h文件。
make -I/home/wuqi/vs_code_prj/linux_kernel/include -C /usr/src/linux-headers-4.15.0-55-generic M=/home/wuqi/vs_code_prj/linux_kernel/calc modules
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-55-generic”
CC [M] /home/wuqi/vs_code_prj/linux_kernel/calc/add_sub.o
/home/wuqi/vs_code_prj/linux_kernel/calc/add_sub.c:3:10: fatal error: add_sub.h: 没有那个文件或目录
#include <add_sub.h>
^~~~~~~~~~~
compilation terminated.
应该是搜索头文件的路径没生效,应该如何修改呢
.
├── calc
│ ├── add_sub.c
│ └── Makefile
├── include
│ └── add_sub.h
├── Makefile
└── test.c
add_sub.c中定义了add_integer 和sub_integer两个函数供test.c中调用,对应的add_sub.h在include中定义
#include <linux/init.h>
#include <linux/module.h>
#include <add_sub.h>
long add_integer(int a,int b)
{
return a+b;
}
long sub_integer(int a, int b)
{
return a-b;
}
EXPORT_SYMBOL(add_integer);
EXPORT_SYMBOL(sub_integer);
calc中的Makefile如下:
obj-m:=add_sub.o
CURRENT_PATH:=$(shell pwd)
LINUX_KERNEL:=$(shell uname -r)
LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)
PRINT_INC=$(dir $(CURRENT_PATH))include
EXTRA_CFLAGS += -I$(PRINT_INC)
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
make的时候提示找不到add_sub.h文件。
make -I/home/wuqi/vs_code_prj/linux_kernel/include -C /usr/src/linux-headers-4.15.0-55-generic M=/home/wuqi/vs_code_prj/linux_kernel/calc modules
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-55-generic”
CC [M] /home/wuqi/vs_code_prj/linux_kernel/calc/add_sub.o
/home/wuqi/vs_code_prj/linux_kernel/calc/add_sub.c:3:10: fatal error: add_sub.h: 没有那个文件或目录
#include <add_sub.h>
^~~~~~~~~~~
compilation terminated.
应该是搜索头文件的路径没生效,应该如何修改呢