linux 默认文件路径在哪,linux 默认的include在哪?

#include中的module.h默认是在哪个目录下呢?我在/usr/include/linux下并没有找到这个文件。

另外想问一下,不同内核版本的linux头文件是不是一样的。比如:我在2.6.20内核的系统上,用2.6.10的头文件会不会有问题。

|

你引用的是内核下的头文件.

不在/usr/include下.

在:

/usr/src/kernels/2.6.18-8.el5-x86_64/include/linux/module.h 下面...

中间的版本号是不一样的...你选你的就行了..

|

gcc是怎么找到头文件的?

================================

回答了这个问题,LZ就明白了一切了,GCC找头文件有三种策略:

1.会在默认情况下指定到/usr/include文件夹(更深层次的是一个相对路径,GCC可执行程序的路径是/usr/bin,那么它在实际工作时指定头文件头径是一种相对路径方法,换算成绝对路径就是/usr/include)

2.GCC还使用了-I指定路径的方式,这一点大家都知道

3.还可以使用一个参数来指示GCC不搜索系统默认路径,这个参数我忘了,你搜一下就知道了

在编译驱动模块时,由于特殊的需求必须强制GCC不搜索系统默认路径,也就是不搜索/usr/include,要自己用-I参数来指定内核头文件路径,这个时候必须在Makefile中指定两个参数,一个是内核头文件路径,一个是强制GCC不搜索系统默认路径。在编译内核时,必须使用一个参数(强制GCC不搜索系统默认路径),否则就会引起混乱。

明白了上面的原理,LZ自己应该可以找到答案了吧????

|

1   我的 module.h是在 内核编译好了的目录下的,不是在/usr/include/linux下,

2    在2.6.20内核的系统上,用2.6.10的头文件应该会有问题,内核的头文件和 当前系统运行的内核不一致。

|

这个问题很好,

你需要看看linux kernel的Makefile文件了。在什么地方找头文件,它说了算。:)

|

你的程序是驱动之类的内核层的吧?

它调用的头文件就应该是内核源码里面的include了。一般的系统都把内核源码放在/usr/src下面,如果是自己编译的内核的话,也可以放在别处的。

至于gcc到哪里去找头文件,就看makefile了,或者直接用gcc命令的话,要加上-I来指定目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值