关于/usr/include/linux和/usr/src/linux/include/linux/

在linux系统中,/usr/存在include目录,而在内核源码/usr/src/linux版本号/目录下也存在include目录,那么这两个include目录分别在什么时候使用呢,在编写代码的时候,include <sys/stat.h> 是在哪个include目录下呢

 

/usr/include/linux是用来编译当前系统的程序的;
/usr/src/linux/include/linux/是用来编译内核的,

要使用/usr/src/linux/include/linux的头文件,
可以用gcc -I /usr/src/linux-x.x.x/include/

呵呵,一个是用户态下的搜索路径,一个是内核模块需要的头文件搜索路径,用的地方都不一样
如果你没有在编译时显示地加上-I的情况下:
如果你的代码中没有__KERNEL__这样的宏声明,那么编译时就会使用C库的头文件
如果你的代码是用于内核模块的,那么它指向的就是内核头文件,一般说来,在你的/usr/src/下还有一个链接符号,符号名为linux,它指向了 linux-2.4.20-8这个目录,这是编译器在编译内核模块时使用的路径,编译器是通过__KERNEL__这个宏来识别你是需要内核中的结构体/ 函数或者是使用C库中的各种函数与结构体等

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值