解决m1的mac下 执行flutter pub run ffigen 出现“(have ‘arm64’, need ‘x86_64’)“错误

解决m1的mac下 执行flutter pub run ffigen 出现"(have ‘arm64’, need ‘x86_64’)"错误

ffigen主要是用来将底层的c/c++的导出函数转成dart能方便调用的方法,用起来挺方便的,之前在windows弄成功过,现在在要在m1的mac下再弄一次,不出意外,果然又碰到问题了。


首先在执行ffigen命令的时候提示找不到llvm相关的库

这个问题直接执行brew install llvm即可。

安装完后,继续执行ffigen命令,又出现错误了.

Invalid argument(s): Failed to load dynamic library '/opt/homebrew/opt/llvm/lib/libclang.dylib': 
dlopen(/opt/homebrew/opt/llvm/lib/libclang.dylib, 0x0001): tried: '/opt/homebrew/opt/llvm/lib/libclang.dylib'
(mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), 

这个m1确实坑挺多的,之前就碰到好多和这相关的问题。先去github仓库找,肯定有其它从碰到过这个问题,搜索了下,果然有
https://github.com/dart-lang/ffigen/issues/323

但仔细看完后发现,解决的办法竟然是要重新安装arm版本的flutter。看了下自己电脑上的dart版本,

file /Users/cxw/dev_tools/flutter/bin/cache/dart-sdk/bin/dart
/Users/cxw/dev_tools/flutter/bin/cache/dart-sdk/bin/dart: Mach-O 64-bit executable x86_64

不过这么做还是不太建议,毕竟基础的开发环境能不动,就尽量不动,好几个生产项目都依赖这个环境。

既然不重装arm版本的flutter,那就安装x86_84的llvm,这样应该也能解决问题。

网上一通搜索,终于找到了mac下的x86_64的llvm

下载完,在pubspec.yaml中配置好llvm库,再次执行flutter pub run ffigen…果然就可以了。




版权声明:本文为凸然网站的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:解决m1的mac下 执行flutter pub run ffigen 出现"(have ‘arm64’, need ‘x86_64’)"错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值