如何处理 Flutter 插件中的原生依赖关系

Ken*_*Ken 5 c++ cmake flutter flutter-windows

我正在尝试创建一个包含一些 C++ 代码的 Flutter 插件。该代码具有多个依赖项,因此需要采取措施将这些依赖项提供给 C++ 构建系统(当前基于 cmake,为 Windows 桌面构建),特别是在哪里查找头文件和库。使用 CMake 有多种方法可以做到这一点,我们碰巧使用 Conan 来获取和提供依赖项,但无论如何,我需要一种方法来执行预构建步骤和/或为 Flutter 的执行提供参数cmake 来帮助它找到这些依赖项。

我已经确定 Flutter 不支持构建的大量(或任何)可定制性。有 build 和 build_runner 包,但我不相信它们会了解我的平台的构建输出目录,也不提供向 cmake 调用注入参数的方法。

如何将依赖项提供给 Flutter 插件的本机构建?这些依赖项可以是静态库或动态库。

Pav*_*sha 0

与 C/C++ 代码互操作的唯一可能的官方方法是ffi库。网上关于它的信息不多,但有官方文档

请记住,C 互操作依赖于父平台。

为了正确生成与所需本机代码的绑定,您需要有ffigen库。我认为它也会帮助您解决依赖问题。

希望能帮助到你