MakefileMakefile 中 LINUXINCLUDE 的作用

Posted Evan_ZGYF丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MakefileMakefile 中 LINUXINCLUDE 的作用相关的知识,希望对你有一定的参考价值。

在驱动开发的时候,我们经常会创建很多新的头文件,这些头文件大多以#include"xxx.h"的形式放在源码中。
而内核头文件则是以#include <xxx.h>的形式存在。
这两者的区别:
前者(使用""),来引用xxx.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。

后者(使用<>),来引用xxx.h文件,是首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错。

实际移植过程中遇到的问题是,#include"xxx.h"形式的头文件,它的路径通常会很长,代码耦合性相对更高一些。
如果能改成#include <xxx.h>的形式,那么是更好的选择。

如何将自己写的头文件添加到标准路径?

看一个Makefile的例子:

# Makefile for the Linux device tree
LINUXINCLUDE += -Idrivers/net/pifm/include
obj-y    += pifcfg/
obj-y    += pifdrv/
obj-$(CONFIG_TRANSPARENT) += transparent.o

这其中有一个LINUXINCLUDE 就是做了相应的操作,具体应该是在根目录下的Makefile,会将LINUXINCLUDE中的所有路径添加到标准检索中。

这样的一个好处就是:
原先路径是:
#include "../../../include/pif.h"

修改Makefile之后,代码中可以改为:
#include <pif.h>

从代码的可维护性、可读性角度来说,这肯定是更好的一个选择!
完毕~

以上是关于MakefileMakefile 中 LINUXINCLUDE 的作用的主要内容,如果未能解决你的问题,请参考以下文章

MakefileMakefile 中 LINUXINCLUDE 的作用

MakefileMakefile 中 LINUXINCLUDE 的作用

makefileMakefile:16: *** 遗漏分隔符 。停止。

LinuxI/O多路复用

LinuxI/O多路复用

Linux 操作系统原理 — I/O 处理流程