当前位置: 技术问答>linux和unix
为什么insmod时候说我文件的格式不对(。o文件)
来源: 互联网 发布时间:2015-11-29
本文导语: 为什么我编译一个内核模块成功 却insmod 失败 提示我格式不对 我编译出来后是个。o文件 #include #include #if CONFIG_MODVERSIONS==1 #define MODVERSIONS #include #endif int init_module() { printk("hello,world-this is the kernel speakingn...
为什么我编译一个内核模块成功 却insmod 失败 提示我格式不对 我编译出来后是个。o文件
#include
#include
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include
#endif
int init_module()
{
printk("hello,world-this is the kernel speakingn");
return 0 ;
}
void cleanup_module()
{
printk("short is the life of a kernel modulen");
}
编译项
gcc -c -Wall -DMODULE -D__KERNEL__ -DLINUX hello.c
我用的是red flag workstation 版本 内核源版本和当前使用的是同一个版本
#include
#include
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include
#endif
int init_module()
{
printk("hello,world-this is the kernel speakingn");
return 0 ;
}
void cleanup_module()
{
printk("short is the life of a kernel modulen");
}
编译项
gcc -c -Wall -DMODULE -D__KERNEL__ -DLINUX hello.c
我用的是red flag workstation 版本 内核源版本和当前使用的是同一个版本
|
你是2.4还是2.6的内核?
2.6内核是.ko文件
2.6内核是.ko文件
|
obj-m := hello.o
KERNELBUILD:=/lib/modules/$(shell uname -r)/build
hello:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o
给你一个我的例子
KERNELBUILD:=/lib/modules/$(shell uname -r)/build
hello:
make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
rm -rf *.o
给你一个我的例子