android - Eclipse CDT C/C++ 索引器未检测到几个类

标签 android c++ eclipse opencv

我目前正在使用 OpenCV Android NDK,当我打开示例项目时,CPP 编辑器总是显示错误“IDetector not defined”

class CascadeDetectorAdapter: public DetectionBasedTracker::IDetector
{
public:
    CascadeDetectorAdapter(cv::Ptr<cv::CascadeClassifier> detector):

但是编译和执行工作正常,我能够运行项目

但编辑器中的错误有点奇怪,我无法 ctrl+click 类,但是 CascadeClassifier 也是 opencv2/objdetect.hpp 中的 CPP 类已正确索引并且我能够自动完成但 opencv2/objdetect/detection_based_tracker.hpp 未正确索引

我有另一个 HPP 文件,比如 abcd.hpp,并用不同的名称放置了类似的类

#ifndef __OPENCV_OBJDETECT_ABCD_HPP__
#define __OPENCV_OBJDETECT_ABCD_HPP__

namespace cv
{

class CV_EXPORTS DetectionBasedTracker1
{
    public:
    class IDetector1
    {

    };
};

};
#endif

此处检测到 DetectionBasedTracker1 但未检测到 DetectionBasedTracker1::IDetector1

这是与嵌套类相关的问题吗?

谁能帮我解决这个问题。

--编辑--

detection_based_tracker.hpp的顶部似乎有以下代码

#if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || \
  (defined(__cplusplus) &&  __cplusplus > 201103L) || (defined(_MSC_VER) && _MSC_VER >= 1700)

如果我删除这段代码并重新索引,那么错误就会消失

是否可以使用 eclipse 环境变量或 C/C++ 宏或程序集绕过此#if define

最佳答案

是的,你可以在你的项目中添加#个符号

项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> # 符号

在此处添加 __ANDROID__ 并提供一些值,如 1

然后索引器应该能够绕过 maro 并识别类定义

关于android - Eclipse CDT C/C++ 索引器未检测到几个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166424/

相关文章:

android - 带抽屉导航的 PreferenceActivity 抛出空指针异常

android - Facebook 的 Android 应用程序(怎么做?)

c++ - 允许在构造函数中创建新变量

java - 运行 junit 时不支持 Major.minor 版本 52.0

mysql - JPA:MySQL 说表不存在,但它实际上存在

android - 弹出窗口还是弹出菜单?或者是其他东西?

android - TextureView 表面在三星 S3 上不可用

c++ - 如何从 std::cin 读取直到流结束?

c++ - Windows 风格的 getopt/argp

java - 如何打开不属于 Eclipse 项目的 Ant 文件?