iOS release版本,解决方式参考官方文档:在 iOS 中使用 dart:ffi 调用本地代码
如果debug版本也报这个错误,很可能是有多个.c文件,编译的时候没带上!
假设你的ffi模块名字是 c_lib
对于Android端,需要修改 src 目录下的 CMakeLists.txt
add_library(c_lib SHARED
c_lib.c
xxx.c
somedir/xxx.c
)
对于iOS,需要修改 ios/Classes 目录下的 c_lib.c 文件
#include "../../src/somedir/xxx.c"
#include "../../src/xxx.c"
#include "../../src/c_lib.c"
而且,include 的顺序也很重要,原则就是把被依赖的源文件放最前面,不然编译会报错,原因很简单:调用不能先于声明!