0

我在这里查看了 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,而且同样如此。

4

1 回答 1

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默认情况下预处理器已经在其中搜索)。

于 2014-02-06T00:50:00.160 回答