我在这里查看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和类似的目录。
发布于 2014-02-06 00:50:00
如果报头最终安装在/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中搜索)。
https://stackoverflow.com/questions/21591448
复制相似问题