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()' 的未定义引用”

android studio NDK,关于 cv:: 方法

无法配置NDK android studio并获取错误

[NDK_PROJECT_PATH=null]。无法从与 PARALLEL-SPACE 相关的示例项目中解决 Android-NDK 错误

无法构建 Android NDK 项目致命错误:android/configuration.h:没有此类文件或目录编译终止

未找到Android Studio NDK iostream文件,无法在CMakeList中启用neon