包含在libclang标题中

包含在libclang标题中,c,clang,libclang,C,Clang,Libclang,我在查看libclang headers here(),在中我注意到几乎所有的头都有导入,如中所示 #include "clang-c/Platform.h" // in CXString.h // in Index.h #include "clang-c/Platform.h" #include "clang-c/CXString.h" 我不明白为什么这些头的前缀是clang-c/,因为它们都在同一个目录中,不是应该是/Platform.h/CXString.h,同样的。如果为了论证起见,

我在查看libclang headers here(),在中我注意到几乎所有的头都有导入,如中所示

#include "clang-c/Platform.h" // in CXString.h

// in Index.h
#include "clang-c/Platform.h"
#include "clang-c/CXString.h"

我不明白为什么这些头的前缀是
clang-c/
,因为它们都在同一个目录中,不是应该是
/Platform.h
/CXString.h
,同样的。

如果为了论证起见,头最终安装在
/usr/local/include/clang-c
目录中,然后,命令行选项
-I/usr/local/include
将确保找到
#include“clang-c/Platform.h”
。如果未指定子目录,则必须在命令行上有
-I/usr/local/include/clang-c
。它还提供分区和分离;
clang-c/Platform.h
与任何其他包中的文件
Platform.h
分开


请注意,诸如
之类的头使用此方案,但所讨论的
sys
是O/S,头可以在
/usr/include/sys
中找到(但您不必在编译器命令行上指定
-I/usr/include/sys
,因为预处理器默认情况下已经在
/usr/include
中搜索)。如果未指定子目录,则必须在命令行上有
-I/usr/local/include/clang-c
。它还提供分区和分离;
clang-c/Platform.h
与任何其他包中的文件
Platform.h
分开


请注意,诸如
之类的头使用此方案,但所讨论的
sys
是O/S,头可以在
/usr/include/sys
中找到(但您不必在编译器命令行上指定
-I/usr/include/sys
,因为预处理器默认情况下已经在
/usr/include
中搜索)。如果未指定子目录,则必须在命令行上有
-I/usr/local/include/clang-c
。它还提供分区和分离;
clang-c/Platform.h
与任何其他包中的文件
Platform.h
分开


请注意,诸如
之类的头使用此方案,但所讨论的
sys
是O/S,头可以在
/usr/include/sys
中找到(但您不必在编译器命令行上指定
-I/usr/include/sys
,因为预处理器默认情况下已经在
/usr/include
中搜索)。如果未指定子目录,则必须在命令行上有
-I/usr/local/include/clang-c
。它还提供分区和分离;
clang-c/Platform.h
与任何其他包中的文件
Platform.h
分开


请注意,诸如
之类的头使用此方案,但所讨论的
sys
是O/S,头可以在
/usr/include/sys
中找到(但您不必在编译器命令行上指定
-I/usr/include/sys
,因为预处理器默认情况下已经在
/usr/include
中搜索).

分区和分离,谢谢你的解释。分区和分离,谢谢你的解释。分区和分离,谢谢你的解释。分区和分离,谢谢你的解释。