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