内核模块编译中头文件的包含问题

内核编译和嵌入式产品的设计与开发
回复
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12
送出感谢: 0
接收感谢: 0

内核模块编译中头文件的包含问题

#1

帖子 zongzw » 2009-03-07 14:40

用户空间在使用make命令编译过程中,在Makefile中使用 -I选项来指定要包含的头文件的位置。例如
$(MAKE) -I /dir1/dir2/include ...
内核模块编译过程中想要达到同样的效果应该怎么做?
看过内核编译文档/src/Document/kbuild/*。里面说是使用EXTRA_CFLAGS 选项,按照如下方式,但是一直未能起作用。
obj-m:=mymod.o

EXTRA_CFLAGS+=-Iinclud
mymod-objs := mod.o

all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
rm -rf *.o *.ko *.bak *~
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12
送出感谢: 0
接收感谢: 0

Re: 内核模块编译中头文件的包含问题

#2

帖子 zongzw » 2009-03-09 13:46

怎么没有人回复?
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12
送出感谢: 0
接收感谢: 0

Re: 内核模块编译中头文件的包含问题

#3

帖子 zongzw » 2009-08-10 9:08

知道怎么做了
EXTRA_CFLAGS += -I$(src)/includ
-I$(src)为固定格式
jboo_lee@163.com
帖子: 6
注册时间: 2009-08-02 15:39
送出感谢: 0
接收感谢: 0

Re: 内核模块编译中头文件的包含问题

#4

帖子 jboo_lee@163.com » 2009-08-17 11:57

lzlz,我在些用户空间的程序,想使用<linux/list.h>,但是编译是报错说<linux/list.h>找不到文件。麻烦lz提点一下拉,谢谢。
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12
送出感谢: 0
接收感谢: 0

Re: 内核模块编译中头文件的包含问题

#5

帖子 zongzw » 2009-08-19 10:31

jboo_lee@163.com 写了:lzlz,我在些用户空间的程序,想使用<linux/list.h>,但是编译是报错说<linux/list.h>找不到文件。麻烦lz提点一下拉,谢谢。
用户空间的程序include是C lib库。
当使用#include<linux/list.h>时是引用的/usr/include目录,/usr/include目录下没有linux/list.h文件。
想使用内核中list.h文件的话,可以从/usr/src/linux-$(shell uname -r)/include/linux/中把list.h提取出来放在你的工程目录下使用。
回复

回到 “内核及嵌入式开发”