xref: /linux/Documentation/translations/zh_CN/kbuild/headers_install.rst (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1*e6a5af90SDongliang Mu.. SPDX-License-Identifier: GPL-2.0
2*e6a5af90SDongliang Mu
3*e6a5af90SDongliang Mu.. include:: ../disclaimer-zh_CN.rst
4*e6a5af90SDongliang Mu
5*e6a5af90SDongliang Mu:Original: Documentation/kbuild/headers_install.rst
6*e6a5af90SDongliang Mu:Translator: 慕冬亮 Dongliang Mu <dzm91@hust.edu.cn>
7*e6a5af90SDongliang Mu
8*e6a5af90SDongliang Mu============================
9*e6a5af90SDongliang Mu导出内核头文件供用户空间使用
10*e6a5af90SDongliang Mu============================
11*e6a5af90SDongliang Mu
12*e6a5af90SDongliang Mu"make headers_install" 命令以适合于用户空间程序的形式导出内核头文件。
13*e6a5af90SDongliang Mu
14*e6a5af90SDongliang MuLinux 内核导出的头文件描述了用户空间程序尝试使用内核服务的 API。这些内核
15*e6a5af90SDongliang Mu头文件被系统的 C 库(例如 glibc 和 uClibc)用于定义可用的系统调用,以及
16*e6a5af90SDongliang Mu与这些系统调用一起使用的常量和结构。C 库的头文件包括来自 linux 子目录的
17*e6a5af90SDongliang Mu内核头文件。系统的 libc 头文件通常被安装在默认位置 /usr/include,而内核
18*e6a5af90SDongliang Mu头文件在该位置的子目录中(主要是 /usr/include/linux/usr/include/asm)。
19*e6a5af90SDongliang Mu
20*e6a5af90SDongliang Mu内核头文件向后兼容,但不向前兼容。这意味着使用旧内核头文件的 C 库构建的程序
21*e6a5af90SDongliang Mu可以在新内核上运行(尽管它可能无法访问新特性),但使用新内核头文件构建的程序
22*e6a5af90SDongliang Mu可能无法在旧内核上运行。
23*e6a5af90SDongliang Mu
24*e6a5af90SDongliang Mu"make headers_install" 命令可以在内核源代码的顶层目录中运行(或使用标准
25*e6a5af90SDongliang Mu的树外构建)。它接受两个可选参数::
26*e6a5af90SDongliang Mu
27*e6a5af90SDongliang Mu  make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr
28*e6a5af90SDongliang Mu
29*e6a5af90SDongliang MuARCH 表明为其生成头文件的架构,默认为当前架构。导出内核头文件的 linux/asm
30*e6a5af90SDongliang Mu目录是基于特定平台的,要查看支持架构的完整列表,使用以下命令::
31*e6a5af90SDongliang Mu
32*e6a5af90SDongliang Mu  ls -d include/asm-* | sed 's/.*-//'
33*e6a5af90SDongliang Mu
34*e6a5af90SDongliang MuINSTALL_HDR_PATH 表明头文件的安装位置,默认为 "./usr"。
35*e6a5af90SDongliang Mu
36*e6a5af90SDongliang Mu该命令会在 INSTALL_HDR_PATH 中自动创建创建一个 'include' 目录,而头文件
37*e6a5af90SDongliang Mu会被安装在 INSTALL_HDR_PATH/include 中。
38*e6a5af90SDongliang Mu
39*e6a5af90SDongliang Mu内核头文件导出的基础设施由 David Woodhouse <dwmw2@infradead.org> 维护。
40