dyld:未找到符号:_ffi_prep_closure_loc(在Mac上)

时间:2020-08-05 14:45:11

标签: flutter cocoapods dyld

我在Mac上执行了常规的flutter run,今天针对我的iPhone模拟器,并遇到了这些错误。

Error output from CocoaPods:
↳
    dyld: lazy symbol binding failed: Symbol not found: _ffi_prep_closure_loc
      Referenced from: /Users/toure/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
      Expected in: /usr/lib/libffi.dylib

    dyld: Symbol not found: _ffi_prep_closure_loc
      Referenced from: /Users/toure/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
      Expected in: /usr/lib/libffi.dylib

您如何解决dyld: Symbol not found: _ffi_prep_closure_loc错误?

2 个答案:

答案 0 :(得分:3)

我发现埋在github issue中的修复程序。

在Mac上运行此命令即可解决问题。

gem uninstall ffi
brew reinstall libffi
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
gem install ffi

我决定分享此内容,因为问题标题中的错误与我得到的错误不同。希望这可以节省一些时间。

答案 1 :(得分:0)

我能够通过使用以下标志重新安装该实用程序来解决此问题:

gem install ffi -- --disable-system-libffi

this Medium article中找到了完整的解释。