我目前正在使用 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/