Flutter中使用FFI的方式链接C/C++的so库(harmonyos)
Flutter中使用FFI的方式链接C/C++库(harmonyos)
- FFI plugin创建和so的配置
- FFI插件对so库的使用
FFI plugin创建和so的配置
-
首先我们可以根据下面的链接生成FFI plugin插件:开发FFI plugin插件
-
然后在主项目中pubspec.yaml 添加插件的依赖路径:
-
就可以将so库中的so文件和头文件放入在插件的目录src中
-
需要在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安装路径(以你的实际路劲为准):