模块编程的Makefile问题
时间:2006-03-10
来源:互联网
我写了一个模块,名字叫zariphix_modules_001.c,内容如下:
#include<linux/kernel.h>
#include<linux/module.h>
int init_module(){
printk("Hello World!\n");
return 0;
}
void cleanup_module(){
printk("Bye-bye!\n");
}
然后写了一个Makefile,内容如下:
CC=gcc
MODFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX
zariphix_modules_001.o: zariphix_modules_001.c /usr/include/linux/version.h
$(CC) $(MODFLAGS) -c zariphix_modules_001.c
我在make的时候提示以下错误:
Makefile:5: *** 遗漏分隔符 。 停止。
分隔符是什么呢?还有我找不到我的内核源码树在系统的哪个位置,/usr/src下面没有
我用的系统是 ubuntu 5.10
急求帮助,谢谢~~
#include<linux/kernel.h>
#include<linux/module.h>
int init_module(){
printk("Hello World!\n");
return 0;
}
void cleanup_module(){
printk("Bye-bye!\n");
}
然后写了一个Makefile,内容如下:
CC=gcc
MODFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX
zariphix_modules_001.o: zariphix_modules_001.c /usr/include/linux/version.h
$(CC) $(MODFLAGS) -c zariphix_modules_001.c
我在make的时候提示以下错误:
Makefile:5: *** 遗漏分隔符 。 停止。
分隔符是什么呢?还有我找不到我的内核源码树在系统的哪个位置,/usr/src下面没有
我用的系统是 ubuntu 5.10
急求帮助,谢谢~~
作者: larkin_echo 发布时间: 2006-03-10
引用:
作者: larkin_echo
$(CC) $(MODFLAGS) -c zariphix_modules_001.c |
作者: biinn 发布时间: 2006-03-10
引用:
作者: larkin_echo
还有我找不到我的内核源码树在系统的哪个位置,/usr/src下面没有
我用的系统是 ubuntu 5.10 急求帮助,谢谢~~ |
作者: biinn 发布时间: 2006-03-10
引用:
作者: biinn
这一行最前面要有一个 TAB,不能在第一列上,注意,是TAB, 不是空格,
|
运行 $ sudo make
又有了一大串错误提示:
引用:
gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c zariphix_modules_001.c In file included from /usr/include/linux/sched.h:16, from /usr/include/linux/module.h:9, from zariphix_modules_001.c:2: /usr/include/linux/signal.h:2:2: warning: #warning "You should include <signal.h>. This time I will do it for you." In file included from /usr/include/linux/resource.h:4, from /usr/include/linux/sched.h:79, from /usr/include/linux/module.h:9, from zariphix_modules_001.c:2: /usr/include/linux/time.h:9: 错误:‘struct timespec’ 重定义 /usr/include/linux/time.h:15: 错误:‘struct timeval’ 重定义 /usr/include/linux/time.h:20: 错误:‘struct timezone’ 重定义 /usr/include/linux/time.h:47: 错误:‘struct itimerval’ 重定义 In file included from zariphix_modules_001.c:2: /usr/include/linux/module.h:41: 错误:字段 ‘attr’ 的类型不完全 /usr/include/linux/module.h:49: 错误:字段 ‘kobj’ 的类型不完全 zariphix_modules_001.c: 在函数 ‘init_module’ 中: zariphix_modules_001.c:5: 警告:隐式声明函数 ‘printk’ make: *** [zariphix_modules_001.o] 错误 1 |
还有如果把makefile写成
引用:
obj-m := zariphix_modules_001.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules |
作者: larkin_echo 发布时间: 2006-03-10
引用:
作者: larkin_echo
哦~~~这样啊~~谢谢啦~~~
运行 $ sudo make 又有了一大串错误提示: 这是怎么回事呢?是我没有在我的.c文件中引入<signal.h>的原故吗? 还有如果把makefile写成 这两者有什么不同吗?谢谢回答 |
我下了一个新的内核源码包,编译了一下,但没有安装。再次make就通过。
可新的问题又出现了,当我用insmod加载模块的时候提示:
insmod: error inserting 'zariphix_modules_001.ko': -1 Invalid module format
郁闷。我试过了使用绝对路径和相对路径,也使用modprobe来加载,可都显示错误,这又是怎么回事呢?
作者: larkin_echo 发布时间: 2006-03-11
引用:
作者: larkin_echo
解决这个问题了,原来是因为我的机器中没有内核源码树。
我下了一个新的内核源码包,编译了一下,但没有安装。再次make就通过。 可新的问题又出现了,当我用insmod加载模块的时候提示: insmod: error inserting 'zariphix_modules_001.ko': -1 Invalid module format 郁闷。我试过了使用绝对路径和相对路径,也使用modprobe来加载,可都显示错误,这又是怎么回事呢? |
安装了编译的内核~~就OK了
作者: larkin_echo 发布时间: 2006-03-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28