今天在编译一段代码的时候出现 [Error] dxp.h: No such file or directory。错误信息很简单,但dxp.h其实是在工程文件里的。为什么文件明明在,但编译的时候却找不到呢?
于是我就开始百度了,发现有人用绝对路径来导入头文件,我就试了一下,竟然编译成功了。
那为什么相对路径找不到头文件呢?
于是我又开始百度了,发现有人用双引号来导入头文件,而不是双尖括号,类似这样 #include “dxp.h”。我试了一下,竟然也编译成功了。
那为什么通过双引号可以用相对路径找到头文件呢?
于是我就开始百度了,百度上说:
头文件可以分为系统头文件和用户头文件,显然我自定义的头文件属于用户头文件。
导入头文件有两种形式:
-
#include <xxx.h>:用于导入系统提供的标准库头文件,编译器会在系统默认的路径中查找指定头文件,不需要指定完整路径名。
-
#include “xxx.h” :用于导入用户头文件或者系统提供的非标准库头文件。编译器先在当前目录中查找指定的头文件,如果找不到则在系统的标准库路径中查找。
所以,懂了吗?
我回头一看,书上导入用户头文件的时候,也是用的双引号。这就很尴尬了。
我忘记了引用用户头文件时需要用双引号,也就是说我认为必须要用双尖括号来引用头文件,为什么我却对书上使用双引号来引用头文件视而不见呢?
参考来源:https://www.yisu.com/ask/66410540.html