linux内核模块静态库编译,Linux编译内核模块静态库

如果你到静态库不需要使用任何内核数据结构或者函数那么你可以参考

如何将内核静态库编译连接到驱动程序中去

如果你需要在静态库里面使用一些内核数据结构,如简单的添加一个 #include ,你会发现编译器输出一堆错误!

最常见的是 找不到之类,那么你可以参考我的静态库makefile

RM = rm -f

CCFLAGS = -c -O2 -D__KERNEL__

ARFLAG  = -rc

CC = gcc -fno-common -v

AR = ar

lib_OBJECTS  =  xxxx.o

lib_SOURCE  =  xxxx.c

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

X86_ASMDIR := /lib/modules/$(shell uname -r)/build/arch/x86/include

CONFIG_FILE := /lib/modules/$(shell uname -r)/build/include/generated/autoconf.h

LIB = xxxx.a

xxxx.a:$(lib_OBJECTS)

$(AR) $(ARFLAG) -o $@ $^

$(lib_OBJECTS):$(lib_SOURCE)

#$(CC) $(CCFLAGS) -o $@ $^

$(CC) $(CCFLAGS) -I$(KDIR) -I$(X86_ASMDIR) -include $(CONFIG_FILE) -o $@ $^

clean:

$(RM) $(lib_OBJECTS.o)

$(RM) $(LIB)

注意makefile中的粗体行,解决了系统找不到包含文件问题,另外指明了编译内核模块的默认配置autoconf.h

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值