Libclang不遵循包含声明

时间:2015-07-02 03:09:55

标签: c++ opencv include clang

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

以前,它正在阅读所有内容,但后来我认为它是在关注我的$PATH页眉,我希望它能够遵循这些细节。

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类型,类和函数,这些信息出现在标题上,所以我不认为我需要完整的库来读取代码。当我试图使用完整的库时,我发现自己遇到了麻烦。我需要使用库的iOS编译(?)版本(?),因此我将已编译版本的标题复制/粘贴到此工作目录中(对不起?:))

编辑1:我的目录看起来很奇怪opencv2/,但是如果我从里面删除标题,clang就会抱怨他们为什么不在那里:{{ 1}}

1 个答案:

答案 0 :(得分:0)

我只需在添加-I.之前添加-I./opencv2,因为我有一个文件与opencv.hpp相同的目录。天哪我因为错过这个而感到愚蠢。

相关问题