Libclang 不遵循 include 语句

Libclang don't follow include statement

我正在尝试使用 Libclang 以编程方式分析 Opencv 库,但是当我尝试从 Opencv opencv.hpp 导入主要 header 时,libclang 不会遵循路径。

以前,它阅读所有内容都非常漂亮,但后来我认为它正在跟随我的 $PATH 的 headers,我希望它遵循这些特定的。

opencv.hpp 是一个包含大量 #include 语句的文件,如下所示:

#include "core/core_c.h"
#include "core/core.hpp"
#include "flann/miniflann.hpp"
// ... and so on

但是,当我尝试使用 libclangclang ./opencv.hpp 打开它时,它不会跟随:

clang ./Header_Example/opencv.hpp
./Header_Example/opencv.hpp:46:10: fatal error: 'core/core_c.h' file not found
#include "core/core_c.h"
         ^
1 error generated.

但我确定它在正确的目录中(我的 tree 输出的一部分):

── Header_Example
│   ├── opencv.hpp
│   ├── opencv2
│   │   ├── # more directories
│   │   ├── core
│   │   │   ├── affine.hpp
│   │   │   ├── core.hpp
│   │   │   ├── core_c.h
│   │   │   ├── types_c.h
│   │   │   ├── version.hpp
│   │   │   └── wimage.hpp

也许我没有使用正确的 clang 参数?

一些上下文:我想分析 Opencv 类型,类 和函数,此信息存在于 headers 上,所以我认为我不需要完整的库阅读代码。当我尝试使用完整的库时,我发现自己遇到了麻烦。我需要使用库的 iOS 编译(?)版本(?),因此我 copy/pasted 编译版本中的 headers 到这个工作目录(抱歉?:))

编辑 1:我的目录有这个 opencv2/ 似乎很奇怪,但是如果我从里面删除 headers,clang 会抱怨'为什么它们不在那里: fatal error: 'opencv2/core/types_c.h' file not found

我只需要在添加 -I./opencv2 之前添加 -I.,因为我有一个文件与 opencv.hpp 在同一目录中。天哪,我觉得错过这个太愚蠢了。