我已按照标准Flutter FFI说明将libavcodec.dylib
包含在Flutter项目中。
调用DynamicLibrary.open('libavcodec.59.dylib')
执行时没有问题,并返回一个非负句柄地址,(我认为(这表示加载成功。
当我试图查找任何符号时,Flutter会抛出一个错误:
"[错误:flutter/lib/ui/ui_start_state.cc(209(]未处理的异常:无效参数:查找符号失败&";。
当我用各种符号名称调用providesSymbol()
时,它总是返回false
。
有人知道为什么会发生这种情况吗?是否需要其他步骤来引导这样一个库?如何调试问题的根本原因
我认为这是根头文件。这是库的文档。
看起来dylib中的名称与C代码中的名称不太匹配。当我根据dylib中的名称查找符号时,它们会按预期解析。
我用来解决这个问题的工具如下:
nm -gU mylib.dylib