问一下,为什么代码在RedHat里面gcc编译出错,提示找不到module.h等头文件
在网上拷贝了一些关于linux钩子的函数使用,问一下,为什么代码在RedHat里面gcc编译出错,提示找不到module.h等头文件,然后我下了3.2.6的内核解压出来把...
在网上拷贝了一些关于linux钩子的函数使用,问一下,为什么代码在RedHat里面gcc编译出错,提示找不到module.h等头文件,然后我下了3.2.6的内核解压出来把module.h拷到usr/include/linux目录下但是出了一大堆关于头文件内部的问题,,怎么解决啊
今天我在虚拟机里查看了我的linux 内核版本是2.6.18的
然后我下下来拷贝到/usr/src 里面
源代码里面是这样的
#include </linux/module.h>
......
我在编译的时候是这样的
gcc -l /usr/src/include -o test.c
在 /usr/src/include/linux目录下面明明有module.h这个文件,但为什么他总是说不存在呢
我使用find /usr/src/include/linux module.h
他也提示没有,但是明明有嘛。。。。 展开
今天我在虚拟机里查看了我的linux 内核版本是2.6.18的
然后我下下来拷贝到/usr/src 里面
源代码里面是这样的
#include </linux/module.h>
......
我在编译的时候是这样的
gcc -l /usr/src/include -o test.c
在 /usr/src/include/linux目录下面明明有module.h这个文件,但为什么他总是说不存在呢
我使用find /usr/src/include/linux module.h
他也提示没有,但是明明有嘛。。。。 展开
4个回答
展开全部
你拷贝到/usr/include/linux的module.h先删除了,根本不是在这个目录
你需要首先安装对应内核版本的头文件,不是随便一个版本就可以~一般情况下内核头文件放在/usr/src/下面。
你这个钩子函数一看就知道是运行在内核空间的,以模块的方式安装使用的,不是你直接就可以用gcc安装的~最简单的办法是用makefifle,具体操作你找下如何编译内核模块或者看下源码自带的说明文档。
PS:你是全部都拷贝进去了吗?这个.h本身会有很多其他的引用.
另外,这个编译时我上面说了用makefile来做,你看下这里:
http://zhidao.baidu.com/question/262194193.html
你需要首先安装对应内核版本的头文件,不是随便一个版本就可以~一般情况下内核头文件放在/usr/src/下面。
你这个钩子函数一看就知道是运行在内核空间的,以模块的方式安装使用的,不是你直接就可以用gcc安装的~最简单的办法是用makefifle,具体操作你找下如何编译内核模块或者看下源码自带的说明文档。
PS:你是全部都拷贝进去了吗?这个.h本身会有很多其他的引用.
另外,这个编译时我上面说了用makefile来做,你看下这里:
http://zhidao.baidu.com/question/262194193.html
展开全部
我的也是这样啊 搞了几天,试了各种办法都木有用,楼主搞定了吗,可以告诉下解决办法不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
btw, find 的提示你看了么??? 用法不对啊~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从源程序开始检查程序是否有不能执行的编译
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询