Bundle install执行失败 安装thrift 0.9.3原生扩展报错如何解决?
问题原因
本次报错的核心是执行安装命令时传递的cppflags参数携带了多余的转义双引号,Ruby的shellwords模块解析参数时识别到未闭合的引号,直接抛出参数错误,导致原生扩展编译终止。
解决方案
- 优先使用修正后的手动安装命令,移除多余的转义字符后直接执行:
gem install thrift -v 0.9.3 -- --with-cppflags="-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value"
- 若执行上述命令仍有编译报错,可先设置全局临时编译参数再执行安装:
export CPPFLAGS="-D_FORTIFY_SOURCE=0 -Wno-shift-negative-value" gem install thrift -v 0.9.3
- 确认thrift安装成功后,回到项目根目录重新执行
bundle install即可完成全部依赖安装。
验证方法
执行gem list thrift,若输出中包含thrift (0.9.3)则代表安装成功。
内容的提问来源于stack exchange,提问作者Iti Jain
相关产品推荐
相关产品推荐

