加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux/init.h及linux/module.h头文件不存在等问题如何解决

发布时间:2016-08-01 08:09:16 所属栏目:Linux 来源:站长网
导读:这个问题真心是处理了一个下午,还自己去下载了个最新的内核拿来编译,其实是完全没必要的,因为ubuntu系统是可以直接下载新内核的。 你可以在/usr/src/文件夹

这个问题真心是处理了一个下午,还自己去下载了个最新的内核拿来编译,其实是完全没必要的,因为ubuntu系统是可以直接下载新内核的。

你可以在/usr/src/文件夹下找到这些内核文件夹,比如说我自己的系统:

<linux/init.h>及<linux/module.h>头文件不存在等问题如何解决

写博客的时候使用的是3.13.0-19的内核。

写一个hello.c的测试文件:

 1 #include <linux/kernel.h> /*Needed by all modules*/
 2 #include <linux/module.h> /*Needed for KERN_* */
 3 #include <linux/init.h> /* Needed for the macros */
 4 
 5 MODULE_LICENSE("GPL");
 6 
 7 static int year=2014;
 8 
 9 static int hello_init(void)
10 {
11   printk(KERN_WARNING "Hello kernel, it's %d!n",year);
12   return 0;
13 }
14 
15 
16 static void hello_exit(void)
17 {
18   printk("Bye, kernel!n");
19 }
20 
21 /* main module function*/
22 module_init(hello_init);
23 module_exit(hello_exit);

然后用kbuild标准写一个Makefile文件:

1 obj-m := hello.o
2 
3 all :
4     $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
5     
6 clean:
7     $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

obj-m := name.o表示会编译一个模块(-m),生成的name.o文件来自于name.c文件。

本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读