首页 > 解决方案 > 如何在 iOS 上调用使用 OpenCV C++ 的 Flutter 插件?

问题描述

我正在开发一个使用 OpenCV 为 Android 和 iOS 执行图像处理的 Flutter 插件。

遵循官方教程 on binding to native code using dart:ffi并遵循this answer on how to use OpenCV 4 in native C++ of Flutter我有一个插件可以由 Flutter 应用程序调用并在 Android 和我上执行 OpenCV 图像处理在 iOS 上测试插件时,我能够成功调用并检索正确的结果表单,即使用 OpenCV 的 C++ 函数。

当我从 iOS 上使用该插件的 Flutter 应用程序调用这些相同的函数时,我收到错误“无效参数:无法查找符号(dlsym(RTLD_DEFAULT,):未找到符号)”。

我认为这个问题可能与这篇关于在 Flutter 上使用 FFI 运行原生 Rust 代码的 Medium 文章中提到的问题有关,其中建议:

“XCode 不会捆绑库,除非它检测到工作区中的显式使用。由于我们调用它的 Dart 代码超出了 XCode 的范围,我们需要编写一个虚拟的 Swift 函数来进行一些虚假的使用。”

我已尝试按照上面在 ios/Classes/.swift 中的建议创建一个虚拟 Swift 函数,但该函数无法识别,并且构建失败并出现错误“使用未解析的标识符 '<my C++ function name>'”。

标签: c++iosopencvflutterffi

解决方案


推荐阅读