当然正如我们上面说过的,我们在程序中可以写成 C:\\Keil\\C51 ,当然也可以使用 斜杠 / 写成C:/Keil/C51 。
2.2 include < > 搜索的系统路径额外提了那么多,回到我们的正题,来说说在 KEIL 中的 #include < > 的查找路径。
比如我们在本文第一张示意图上有一个应用#include ,我们明确的告诉编译器这个需要从系统路径中去查找,这个 KEIL 所谓的系统路径在什么地方呢?
这里我们也没什么好分析的,直接告诉大家答案:
第一个基于51平台的,使用的 51 的编译器, #include < > 的查找路径为“KEIL的安装目录”:\Keil\C51\INC ,比如博主的KEIL安装在C盘,这个路径就是C:\Keil\C51\INC:
当然,我们可以简单的做个试验确认一下,我们可以在 KEIL 中先打开 这个头文件:然后,我们打开C:\Keil\C51\INC 目录下的 MATH.h 文件,进行简单的修改,看一下是否是同一个文件,如下图所示:
那么对于 KEIL5 中的 STM32 中如果使用 #include < > ,这个的查找路径又是怎样的呢?STM32 在 KEIL中使用的编译器为 ARMCC,这个系统路径的位置为:“KEIL的安装目录”:\Keil_v5\ARM\ARMCC\include ,比如博主的KEIL安装在C盘,这个路径就是C:\Keil_v5\ARM\ARMCC\include。
这一点我就不去确定了,大家可以自己添加一个库函数头文件,然后自己根据上文的方式测试一下便知。
三、Linux 中的头文件路径上面介绍了 Windows 下的 KEIL 环境中的头文件系统路径,那么我们来看看 Linux 中的路径又是在哪里,我们知道在 Linux 中 C 语言的编译器是 GCC 编译器,在文章开头的前言我就写过了, 使用 GCC 编译器可以很直观的查看到 #include < > 尖括号包含的头文件的查找路径,下面我们来看一下。
写一个简单的程序,里面用到了 这个头文件,我们可以使用编译选项 -v 来打印出详细的编译步骤:如上图所示,在 Linux 是不是很直观,没什么需要特别说明的。那么我们再换另外一种编译器,其实还是 GCC ,只不过是 ARMGCC,我们也来看一看:
可以看到,同样的可以很直观的看到尖括号包含的头文件的搜索位置,当然,因为编译器的更换,他们搜索的位置也改变了。最后简单总结一下,使用 #include < > 所包含的头文件,其查找路径和使用的编译器有关,编译器都会自带常用的库文件,在 GCC 环境下面,使用 -v 选项就会自动打印出查找位置,使用 IDE 环境根据 IDE 使用的编译器不同存放在对应的目录文件下面,一般来说都可以在 IDE 安装目录中可以找到。
结语:本文我们针对 C 语言头文件路径问题进行了讲解,举例说明了 Windows 下的 IDE 环境中 和 Linux 下GCC 环境中的C语言的 头文件查找路径。
文中还对引出的绝对路径与相对路径,还有路径引用时候的 正斜杠 / 与 反斜杠 \ 与双斜杠 进行了说明。
希望大家以后在遇到头文件路径问题的时候,能够知道如何去查找问题,解决问题!