M1 Mac上Ruby 3.0.4安装msgpack 1.4.4报错求助
解决msgpack gem安装时的函数指针类型不兼容错误
错误原因
你遇到的编译错误是因为msgpack 1.4.4版本过于老旧,和Ruby 3.0.4的C扩展API不兼容。Ruby 3.0调整了rb_rescue2函数的参数类型要求,而老版本msgpack的buffer_class.c代码中传递的函数指针不符合新规范,导致编译失败。
解决办法
- 直接安装兼容Ruby 3.0的msgpack版本:
1.5.0及以上版本已修复Ruby 3.0的兼容性问题。gem install msgpack --version '>= 1.5.0' - 若项目使用Gemfile管理依赖,修改约束为:
再执行gem 'msgpack', '>= 1.5.0'bundle install更新依赖。 - 若旧版本已残留,先卸载再重装:
gem uninstall msgpack -v 1.4.4 gem install msgpack --version '>= 1.5.0'
内容的提问来源于stack exchange,提问作者Boti
相关产品推荐
相关产品推荐

