包含在libclang标头中

时间:2014-02-06 00:13:07

标签: c clang libclang

我在这里查看了libclang标题(http://llvm.org/svn/llvm-project/cfe/trunk/include/clang-c/),其中我注意到几乎所有标题都有导入,如

#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同样。< / p>

1 个答案:

答案 0 :(得分:3)

如果标题最终安装在/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/wait.h>这样的标头使用此方案,但有问题的sys是O / S,标题位于/usr/include/sys中(但您不必在编译器命令行上指定-I /usr/include/sys,因为预处理器默认情况下已在/usr/include中搜索。