Linux头文件路径之困惑

本文详细解析了Linux头文件的使用,包括如何在不同目录下查找特定头文件,解释了`#include <stdio.h>`与`#include <linux/module.h>`的区别,并探讨了这些复杂结构背后的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前做的一直是IDE,对makefile、命令行之类接触不多。

很是困惑Linux中的头文件。譬如#include <stdio.h>,譬如#include <linux/module.h>,绝对路径是什么。。。

搜索了下具体的文件,发现往往有多份,路径也千奇百怪。譬如 内核/include/linux/...,再譬如 内核/include/uapi/linux/...,具体是怎么个区别?

搜到片帖子,http://www.cnblogs.com/QuLory/archive/2013/04/10/3011564.html,说如果在include/linux/和include/uapi/linux/.下有同名的文件,那通常前者会包含后者。还说之所以搞这么复杂,是为了更好的分开某些引用用户库文件和某些引用系统库文件。

网上有篇帖子讲的挺好,http://blog.csdn.net/dreaming_my_dreams/article/details/7745148,

#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。

#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。

#include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。

#include<plat/regs-adc.h>在linux-2.6.31_TX2440A20100510\linux-2.6.31_TX2440A\arch\arm\plat-s3c\include\plat


不过年代久远,现在最新都4.0了,不清楚是不是还这么个说法。

请教了下公司的同事,趾高气昂又支支吾吾,真是上火。

留着吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值