Android NDK 错误:无法声明对 cv::InputArray 的引用
Posted
技术标签:
【中文标题】Android NDK 错误:无法声明对 cv::InputArray 的引用【英文标题】:Android NDK error: cannot declare reference to cv::InputArray 【发布时间】:2014-03-12 10:15:54 【问题描述】:我使用 OpenCV 库用 C++ 编写了我的代码,并在 VS C++ 2010 上进行了测试。现在我想在 android 项目中使用该代码。为此,我使用了最新版本的 Android NDK 和 OpenCV4Android sdk。但是当我尝试ndk-build
命令时,会发生这个错误:
error: cannot declare a reference to 'cv::InputArray aka const class cv::_InputArray&'
是的,我确实在我的 C++ 代码中使用了来自 OpenCV 的 InputArray 数据类型,这是发生错误的行:
unsigned int someFunction(const InputArray &);
而且我知道,在 OpenCV 中,InputArray 被定义为:
typedef const _InputArray& InputArray;
在 VS C++ 上,它编译并运行,没有任何警告。但我不知道如何让它在 Android NDK 上运行。请注意,我不使用 Cygwin,而是使用 Android NDK 附带的默认 ndk-build
脚本进行编译(这有关系吗?)。请有人为我提供一些指导来实现这一点。谢谢!
【问题讨论】:
【参考方案1】:按原样使用InputArray
,无需引用:
unsigned int someFunction(InputArray);
正如您提到的,InputArray
已经是一个 typedef 供参考。我记得 C++ 不允许声明对引用的引用。 Visual Studio 可能是个例外。
【讨论】:
以上是关于Android NDK 错误:无法声明对 cv::InputArray 的引用的主要内容,如果未能解决你的问题,请参考以下文章
使用 Android NDK 构建本机 OpenCV 会给出“对 'cv::String::deallocate()' 的未定义引用”
[NDK_PROJECT_PATH=null]。无法从与 PARALLEL-SPACE 相关的示例项目中解决 Android-NDK 错误
无法构建 Android NDK 项目致命错误:android/configuration.h:没有此类文件或目录编译终止