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
但是,当我尝试使用 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 类型,类 和函数,此信息存在于 headers 上,所以我认为我不需要完整的库阅读代码。当我尝试使用完整的库时,我发现自己遇到了麻烦。我需要使用库的 iOS 编译(?)版本(?),因此我 copy/pasted 编译版本中的 headers 到这个工作目录(抱歉?:))
编辑 1:我的目录有这个 opencv2/
似乎很奇怪,但是如果我从里面删除 headers,clang 会抱怨'为什么它们不在那里: fatal error: 'opencv2/core/types_c.h' file not found
我只需要在添加 -I./opencv2
之前添加 -I.
,因为我有一个文件与 opencv.hpp
在同一目录中。天哪,我觉得错过这个太愚蠢了。
我正在尝试使用 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
但是,当我尝试使用 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 类型,类 和函数,此信息存在于 headers 上,所以我认为我不需要完整的库阅读代码。当我尝试使用完整的库时,我发现自己遇到了麻烦。我需要使用库的 iOS 编译(?)版本(?),因此我 copy/pasted 编译版本中的 headers 到这个工作目录(抱歉?:))
编辑 1:我的目录有这个 opencv2/
似乎很奇怪,但是如果我从里面删除 headers,clang 会抱怨'为什么它们不在那里: fatal error: 'opencv2/core/types_c.h' file not found
我只需要在添加 -I./opencv2
之前添加 -I.
,因为我有一个文件与 opencv.hpp
在同一目录中。天哪,我觉得错过这个太愚蠢了。