Joh*_*mBF 39 linux compiling header-file linux-kernel
我知道如果我想编译我自己的 Linux 内核,我需要 Linux 内核头文件,但它们到底有什么用?
我发现下面/usr/src/似乎有几十个 C 头文件。但是它们的目的是什么,它们不是直接包含在内核源代码中吗?
Mat*_*teo 30
头文件定义了一个接口:它们指定源文件中的函数是如何定义的。
使用它们是为了让编译器可以检查函数的使用是否正确,因为函数签名(返回值和参数)存在于头文件中。对于这个任务,函数的实际实现不是必需的。
你可以对完整的内核源代码做同样的事情,但你会安装很多不必要的文件。
示例:如果我想使用该功能
int foo(double param);
Run Code Online (Sandbox Code Playgroud)
在程序中,我不需要知道它的实现foo方式,我只需要知道它接受单个参数 ( double) 并返回一个整数。
Sta*_*mer 19
如前所述,头文件定义了程序使用的函数和结构的接口。
对于内核头文件,这些函数和结构在内核本身中。
如果您正在构建一个完整的内核,那么很明显,您需要完整的源文件,而不仅仅是头文件。但是,如果您正在编译链接到内核的设备驱动程序或其他可加载模块,那么您只需要头文件,因此可以通过不安装完整源代码来节省空间。
分离包以便您可以只安装头文件在一定程度上是历史性的,因为当磁盘较小时,磁盘使用的差异曾经是一个重要的考虑因素。如今,将整个源(不必要)放在磁盘上不再是主要的磁盘空间考虑因素。
bah*_*mat 14
术语头文件源自用于编写 Linux 内核的C编程语言。
从一个非常高的层次来解释它......
在 C 中,您需要在使用函数之前对其进行前向声明。换句话说,函数的描述、它的参数以及它返回的数据类型。通常的做法是将所有前向声明放入一个名为header 的文件中。其他程序的源代码文件可以使用include这个头文件,并且在编译后可以访问生成的程序可执行文件中的所有函数。
Linux 头文件是所有.h包含 Linux 内核提供的可以从其他程序调用的功能的文件。
| 归档时间: |
|
| 查看次数: |
94161 次 |
| 最近记录: |