gcc编译简单内核出错!!!

C、C++和Java语言
回复
jhx0301
帖子: 27
注册时间: 2007-11-16 15:52
来自: 杭州
送出感谢: 0
接收感谢: 0
联系:

gcc编译简单内核出错!!!

#1

帖子 jhx0301 » 2007-11-22 17:06

下面是一个很简单的hello内核模块程序 我已经用sudo apt-get install build-essential安装gcc了
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
int HELLO(void){printk("hello!\n");return 1;}
void BYE(void){printk("bye!\n");}

module_init(HELLO);
module_exit(BYE);

用gcc执行
root@jhx-ubuntu:~/c# gcc -c hello.c
hello.c:1:26: 错误: linux/init.h:No such file or directory
hello.c:2:26: 错误: linux/module.h:No such file or directory

是不是gcc默认的头文件路径有问题呢?该如何解决呢?
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林
送出感谢: 0
接收感谢: 2 次

#2

帖子 tipfoo » 2007-11-22 17:27

代码: 全选

export CFLAGS="-I/usr/include/XXXXXXXXXXXXXXXXX"
export CXXFLAGS="-I/usr/include/XXXXXXXXXXXXXXXXX"
jhx0301
帖子: 27
注册时间: 2007-11-16 15:52
来自: 杭州
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 jhx0301 » 2007-11-22 17:41

上面 两行都要执行吗?
这样写对吗?
export CFLAGS="-I /usr/src/linux-headers-2.6.22-14/include/"
执行之后是不是要重启才能生效 啊?
头像
madoldman
帖子: 599
注册时间: 2006-02-27 20:19
来自: works system
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 madoldman » 2007-11-23 13:31

写内核模块最好写makefile吧还是
东西路,南北走
十字路口人咬狗
拿起狗来打砖头
砖头咬了狗一口
图片
头像
nobrain
帖子: 808
注册时间: 2005-08-25 13:58
来自: ustc
送出感谢: 0
接收感谢: 0
联系:

#5

帖子 nobrain » 2007-11-23 23:07

jhx0301 写了:上面 两行都要执行吗?
这样写对吗?
export CFLAGS="-I /usr/src/linux-headers-2.6.22-14/include/"
执行之后是不是要重启才能生效 啊?
建议楼主在编译内核模块之前先看 shell, make, linux device driver
爱喝真猪奶茶的夜鸣猪
回复

回到 “C/C++/Java”