谁能解释一下为什么头文件被分成 include 目录以及 arch 下?
如果我想链接我的源代码以包含头文件,我实际上应该从哪里获取它?
include/
或者
arch/arm/
我正在 ARM 主机上编写程序(不是交叉编译)
有人可以解释一下内核中头文件的结构吗?它们是如何传播的以及背后的逻辑?
答案1
如果您正在编写用户空间程序,则不应直接使用内核头(无论是来自arch
还是include
- 后者包括适合您的体系结构的前者)。您需要使用准备供用户空间程序使用的标头。这些通常在发行版中作为单独的包提供,例如 linux-libc-dev
在 Debian 上;或者您可以按照上面链接的说明自行准备。
至于内核中头文件的组织,所有公共头文件都位于include
及其子目录中,而特定于体系结构的头文件位于相应arch
目录的子目录中。在大多数情况下,您会包含来自include
(编写内核代码时)的标头。