“make headers_install” 命令以适合用户空间程序使用的形式导出内核的头文件。
Linux 内核导出的头文件描述了尝试使用内核服务的用户空间程序的 API。系统的 C 库(如 glibc 或 uClibc)使用这些内核头文件来定义可用的系统调用以及与这些系统调用一起使用的常量和结构。C 库的头文件包括来自“linux”子目录的内核头文件。系统的 libc 头文件通常安装在默认位置 /usr/include 中,内核头文件安装在该位置下的子目录中(最值得注意的是 /usr/include/linux 和 /usr/include/asm)。
内核头文件向后兼容,但不向前兼容。这意味着使用较旧的内核头文件针对 C 库构建的程序应该可以在较新的内核上运行(尽管它可能无法访问新功能),但针对较新的内核头文件构建的程序可能无法在较旧的内核上运行。
“make headers_install”命令可以在内核源代码的顶级目录中运行(或使用标准的树外构建)。它需要两个可选参数:
make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr
ARCH 表示要为哪种体系结构生成头文件,默认为当前体系结构。导出的内核头文件的 linux/asm 目录是特定于平台的,要查看受支持体系结构的完整列表,请使用以下命令:
ls -d include/asm-* | sed 's/.*-//'
INSTALL_HDR_PATH 指示安装headers的位置。默认为“./usr”。
INSTALL_HDR_PATH 内会自动创建一个“include”目录,headers会安装在“INSTALL_HDR_PATH/include”中。