使用原生 iOS 静态库运行 Flutter 插件时出现“无法查找符号:未找到符号”

问题描述 投票:0回答:3

我正在尝试让静态库的 dart 绑定在 iOS 上工作。
到目前为止,我已经编译了插件的示例项目,但是当我尝试在运行时使用本机函数时,出现以下错误:

Invalid argument(s):
Failed to lookup symbol 'NDIlib_version': dlsym(RTLD_DEFAULT, NDIlib_version):
symbol not found

根据我的阅读,这可能是由于 XCode 在优化应用程序时排除了库而导致的,因为它没有检测到正在使用该库。

到目前为止,我已经尝试在 XCode 中关闭死代码剥离,但没有什么区别:
https://github.com/dart-lang/ffi/issues/41#issuecomment-645550964

这是一个可用于重现错误的最小项目:
https://github.com/jvkolyadich/libndi_bindings

如有任何帮助,我们将不胜感激。

flutter dart dart-ffi
3个回答
1
投票

尝试将剥离链接产品设置为


0
投票

我遇到了通过以下步骤解决的相同问题,如果您有任何困惑,请告诉我,尝试这个答案如何在 IOS 中链接 Lib.a,静态以及动态链接? ,也将 Strip_Style 更改为非全局。正如官方文档中提到的。


0
投票

经过几天的搜索,找到了解决方案,它是

  1. Strip Style => Non Global Symbols
  2. Strip dead code => NO

一定会成功的

© www.soinside.com 2019 - 2024. All rights reserved.