Linux编译内核模块静态库
来源:互联网 发布:sm抢购软件助手 编辑:程序博客网 时间:2024/06/09 23:39
如果你到静态库不需要使用任何内核数据结构或者函数那么你可以参考
如何将内核静态库编译连接到驱动程序中去
http://blog.csdn.net/boywhp/archive/2010/12/07/6059688.aspx
如果你需要在静态库里面使用一些内核数据结构,如简单的添加一个 #include <linux/kernel.h>,你会发现编译器输出一堆错误!
最常见的是 <asm/linkxxx.h> 找不到之类,那么你可以参考我的静态库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
- Linux编译内核模块静态库
- 驱动模块静态编译到 Linux 内核
- linux内核模块编译
- linux内核模块编译
- Linux内核模块编译
- Linux内核模块编译
- Linux 内核 模块 编译
- linux内核模块编译
- linux内核模块编译
- Linux内核模块编译
- Linux内核模块编译
- linux内核模块编译
- linux内核模块编译
- Linux编译内核模块
- Linux内核编译静态库的方法
- Linux内核编译,内核模块编译加载
- 编译一个linux内核模块
- Linux内核模块编译指南
- 关于mysql错误:Illegal mix of collations for operation '='的解决
- 局域网中绑定ip地址和mac地址
- 关于线程库pthread_cond_signal丢失的问题
- DeviceIoControl 相关说明
- 好好学习天天向上
- Linux编译内核模块静态库
- Hibernate条件查询(Criteria Query)
- win32多线程程序设计
- [SQL Server]性能排错之系统等待:WRITELOG
- oracle导出报错EXP-00091的解决方法
- php CI框架log_message报错
- SL4+net.tcp通信问题
- 二叉树遍历算法实现
- Ant打包编译部署工具学习笔记