我尝试使用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
但是,当我尝试使用libclang
或clang ./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}}
答案 0 :(得分:0)
我只需在添加-I.
之前添加-I./opencv2
,因为我有一个文件与opencv.hpp
相同的目录。天哪我因为错过这个而感到愚蠢。