假设我们有一个.cpp
文件A
包含一个.h
文件B
其中包括一个.h
文件C
。
// File A.cpp
#include "B.h"
...
// File B.h
#include "../../utilityies/C.h"
...
如果B
包含使用相对路径的C
,则该相对路径是相对于B
的位置解析还是相对于A
的位置解析,这是B
将被复制粘贴到的.cpp
?
包含路径相对于包含它的文件,因此在您的情况下相对于 B 的位置。
来自 gcc 文档:
GCC 首先 #include 在 包含当前文件的目录,然后在目录中作为 由 -iquote 选项指定,然后在相同的位置它会有 查找带有尖括号的请求标题。例如,如果 /usr/include/sys/stat.h 包含 #include "types.h",GCC 查找 type.h 首先在/usr/include/sys 中,然后在其通常的搜索路径中。