Flutter中使用FFI的方式链接C/C++库(harmonyos)

FFI plugin创建和so的配置

  1. 首先我们可以根据下面的链接生成FFI plugin插件:开发FFI plugin插件

  2. 然后在主项目中pubspec.yaml 添加插件的依赖路径:
    在这里插入图片描述

  3. 就可以将so库中的so文件和头文件放入在插件的目录src中
    在这里插入图片描述

  4. 需要在cmakelists.txt文件中链接so库:
    在这里插入图片描述
    注意:如果没有连接成功,会报这个没有链接so库
    在这里插入图片描述

FFI插件对so库的使用

首先我们需要再FFI plugin 插件的.c(自己方法的实现: 调用so库的方法).h (自己方法的申明)
在这里插入图片描述

利用一个插件,把我们编写的过度的C的代码, 重新生成头文件给Dart调用

重新生成头文件依赖llvm环境llvm环境下载

问题参考

参照基本类型映射关系

修改模版可参考资料:FFI-大神的笔记

每次我们在链接库中新增加函数, 同样需要在插件的ffigen.yaml中右键鼠标在文件的目录上使用命令flutter pub run ffigen --config ffigen.yaml 在来生成函数的桥接
在这里插入图片描述
在这个文件中生成桥接代码:
在这里插入图片描述
同时在ffigen.yaml目录中需要加上这个路径地址,这个地址是llvm安装路径(以你的实际路劲为准):
在这里插入图片描述

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐