【发布时间】:2012-10-11 20:34:54
【问题描述】:
我正在尝试了解 Linux 内核,所以我正在阅读 Linux 内核源代码。那么如何确定头文件的位置,因为有很多头文件同名但位于不同的目录中?
示例:它们在 fs/open.c 中包含 fcntl.h
我可以在 17 个不同的目录中找到 fcntl.h
arch/alpha/include/asm/fcntl.h
arch/arm/include/asm/fcntl.h
....
【问题讨论】:
-
您列出的示例对于各种类型的处理器都是独一无二的,可能只有其中一个(或最多两个)可能会被给定硬件的构建使用。然而,也可能存在其他可能性,有时很难确定使用哪个 - 例如,将有一个带有 C 库的派生副本,供用户空间程序链接,该副本将匹配架构中特定于架构的细节。内核源代码。
-
如果您礼貌地询问大多数编译器,他们会告诉您他们在哪里搜索。 gcc
--verbose我认为是这样的。 -
这绝对是一个真实的问题,涵盖了一个真实且常见的问题。只能假设那些关闭它的人从未尝试过修改内核模块。
标签: c linux build linux-kernel header-files