当前位置: 首页 > article >正文

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

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

  • FFI plugin创建和so的配置
  • FFI插件对so库的使用

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安装路径(以你的实际路劲为准):
在这里插入图片描述


http://www.kler.cn/a/326380.html

相关文章:

  • 【Mysql】Mysql函数(上)
  • 探索美赛:从准备到挑战的详细指南
  • 直接映射4条 cacheline,每条cacheline32位数据(混乱版)
  • Flutter:Dio下载文件到本地
  • Java 动态代理初步
  • GRE做题笔记(零散的个人经验)
  • winform 将untiy程序嵌入到一个panel里
  • oracle 如何获取当前时间的日份,月份,年份
  • 目前最好用的爬虫软件是那个?
  • YOLOv10涨点改进:IoU优化 | Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU
  • 快速学会一个算法,BERT
  • ant-design-vue中table组件复选框分页切换保留之前选中数据
  • 网络工程和信息安全专业应该考哪些证书?
  • Python每次for循环向list中添加多个元素
  • 【echarts】报错series.render is required.
  • 【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决
  • You are not allowed to push code to this project
  • Docker 安装 ClickHouse 教程
  • Composition API 与 React Hook 的区别
  • Java LeetCode每日一题(2024.9.26)
  • Unity开发绘画板——04.笔刷大小调节
  • 智能AI对话绘画二合一网站源码系统 带完整的安装代码包以及搭建部署教程
  • XPath入门
  • 65.【C语言】联合体
  • Python | Leetcode Python题解之第442题数组中重复的数据
  • plt注解相关介绍及应用