macOS Big Sur下安装thrift 0.9.3.0失败导致bundle install报错求助
解决方案
问题原因
- 该报错由macOS Big Sur自带的clang编译器特性导致:新版本clang新增了
-Wcompound-token-split-by-macro编译检查规则,会将thrift 0.9.3.0版本C扩展代码中的宏展开语法判定为错误,最终编译失败。 - 你之前尝试的编译参数未包含针对该检查规则的忽略配置,因此无法解决问题。
解决步骤
- 先配置bundler的thrift编译参数,确保后续bundle install可以自动应用该配置:
bundle config build.thrift --with-cppflags="-Wno-compound-token-split-by-macro -D_FORTIFY_SOURCE=0"
- 重新执行bundle install即可:
bundle install
- 若仅需单独安装thrift 0.9.3.0的gem包,可直接执行以下命令:
gem install thrift -v '0.9.3.0' -- --with-cppflags="-Wno-compound-token-split-by-macro -D_FORTIFY_SOURCE=0"
异常排查
如果执行上述命令后仍报错,先确认已安装Xcode命令行工具,执行以下命令安装后重试即可:
xcode-select --install
内容的提问来源于stack exchange,提问作者Iti Jain
相关产品推荐
相关产品推荐

