一个各平台调用 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 的配置基本是一样的,注意一下目录就好了。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/5017.html