当前位置:首页 > 资讯 > 正文

【Flutter】Flutter C/C++ 插件的开发 (支持 windows、macos、ios、android )

【Flutter】Flutter C/C++ 插件的开发 (支持 windows、macos、ios、android )

一个各平台调用 C/C++ 源码的例子,如何共享代码,配置相关的编译

官方的例子:https://docs.flutter.dev/development/platform-integration/c-interop

源码地址:https://github.com/gaoshang212/flutter_native_demo

可以执行下面的命令来创建一个插件


--platforms 可以指定支持哪些平台,如 windows,macos,ios,android,linux

如果没有创建相应平台目录,可以使用下面的命令开启相应的平台


如果有字符串操作或转换,可以添加 ffi 的包:


项目结构

很多时候我们各平台是会共用一套C/C++ 源码的,我们先创建一个源码,就按官网的来,但我们创建在一个公共目录(官网创建在IOS/Classes下面)

libs/native_add/native_add.cpp



lib/flutter_native_demo.dart 中添加动态库的调用代码


我们改一下 example/lib/main.dart 的代码



libs/native_add 目录中添加一个 CMakeLists.txt ,用来编译 动态库。


windows 目录下面的 CMakeLists.txt 中添加相应的子目录


example 目录下面执行下面的命令,来运行程序.



安卓的动态库,会自动添加lib头,我们改造一下 libs/native_add/CMakeLists.txt 让他兼容windows和 android


在 android/build.gradle 文件中添加 CMakeList.txt 路径


example 目录下面执行下面的命令,来运行程序


说明:可以用 flutter devices 查看支持设备,来替换

macos/Classes 目录中执行下面的命令,给macOS link 相关的代码


然后回到 example 目录中执行


说明:国内使用时会,通过 CocoaPods 安装包会很慢,可以切换到 清华的镜像。设置 example 目录下macos 的 Podfile。

IOS 和 macOS 的配置基本是一样的,注意一下目录就好了。

C++