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

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

相关文章:

  • 万象奥科工业平板上线,邀您体验与众不同!
  • 聊一下数据脱敏
  • 【机器学习(五)】分类和回归任务-AdaBoost算法
  • webpack 4 的 30 个步骤构建 react 开发环境
  • .NET CORE程序发布IIS后报错误 500.19
  • 嵌入式必懂微控制器选型:STM32、ESP32、AVR与PIC的比较分析
  • 银河麒麟,apt 安装软件报错640Unknown Status
  • JUC高并发编程5:多线程锁
  • 滚雪球学Oracle[7.1讲]:Oracle云数据库
  • Android Studio | 无法识别Icons.Default.Spa中的Spa
  • 实用工具推荐---- PDF 转换
  • AtCoder ABC371 A-D题解
  • 微信小程序处理交易投诉管理,支持多小程序
  • 需求梳理时,如何平衡各方的利益冲突?
  • 位运算(3)_判定字符是否唯一_面试题
  • “大数据应用场景”之隔壁老王(连载四)
  • CSS居中完全指南——构建CSS居中决策树
  • docker容器内的网络抓包
  • emacs初体验
  • ES6简单总结(搭配简单的讲解和小案例)
  • iOS小技巧之UIImagePickerController实现头像选择
  • java8-模拟hadoop
  • JavaScript函数式编程(一)
  • mockjs让前端开发独立于后端
  • mysql外键的使用
  • ucore操作系统实验笔记 - 重新理解中断
  • 笨办法学C 练习34:动态数组
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 记录一下第一次使用npm
  • 日剧·日综资源集合(建议收藏)
  • 数据可视化之下发图实践
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #### golang中【堆】的使用及底层 ####
  • #{} 和 ${}区别
  • #java学习笔记(面向对象)----(未完结)
  • (11)MATLAB PCA+SVM 人脸识别
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (第30天)二叉树阶段总结
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (南京观海微电子)——I3C协议介绍
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)Linux下编译安装log4cxx
  • (转)Oracle存储过程编写经验和优化措施
  • (转)项目管理杂谈-我所期望的新人
  • (转载)(官方)UE4--图像编程----着色器开发
  • (自用)交互协议设计——protobuf序列化
  • .config、Kconfig、***_defconfig之间的关系和工作原理
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET MVC 验证码
  • .NET 发展历程
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .Net面试题4