【问题标题】:Cannot install pushmeup plugin无法安装 pushmeup 插件
【发布时间】:2014-05-05 04:04:36
【问题描述】:

我尝试为 phonegap 推送通知 (ios) 安装 pushmeup 插件。
当我运行命令 sudo gem install pushmeup 我得到这个错误:

构建原生扩展。这可能需要一段时间... 错误:错误 安装 pushmeup:错误:无法构建 gem 原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby

extconf.rb 创建 Makefile

使“DESTDIR=”干净

make "DESTDIR=" 编译 generator.c 链接共享对象 json/ext/generator.bundle clang:错误:未知参数: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future] clang:注意: 这将是一个硬错误(不能降级为警告) 未来品牌:* [generator.bundle] 错误 1

制作失败,退出代码 2

Gem 文件将继续安装在 /Library/Ruby/Gems/2.0.0/gems/json-1.8.1 供检查。结果 登录到 /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.1/gem_make.out

GitHub:

https://github.com/phonegap-build/PushPlugin

参数:

ruby -v ruby​​ 2.0.0p247(2013-06-27 修订版 41674) [universal.x86_64-darwin13]

gem -v 2.2.2

Mac OS X v 10.9.2

XCode 5.1 版 (5B130a)

cordova -v 3.4.0-0.1.3

【问题讨论】:

标签: ruby cordova gem push-notification phonegap-plugins


【解决方案1】:

显然,Apple 破坏了 Mavericks 的某些内容,他们根据此问题删除了警告标志 unused-command-line-argument-hard-error-in-future#528

请试试这个命令:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future sudo gem install pushmeup

它有什么作用?这会设置环境变量:ARCHFLAGS= 这会添加一个忽略警告-Wno-error= 这是你在小牛队中看不到的警告unused-command-line-argument-hard-error-in-future(应该被忽略)

Apple documentation:

编译器

从 Apple LLVM 编译器版本 5.1 (clang-502) 及更高版本开始, 优化级别 -O4 不再意味着链接时间优化 (LTO)。 为了使用 LTO 进行构建,另外显式使用 -flto 选项 到优化级别标志。 (15633276) Apple LLVM 编译器 Xcode 5.1 将无法识别的命令行选项视为错误。这 在构建 Python 本机扩展和 Ruby Gems,目前存在一些无效的编译器选项 指定的。使用无效编译器选项的项目将需要 更改为删除这些选项。为了帮助缓解这种过渡, 编译器将暂时接受将错误降级为 警告:

-Wno-error=unused-command-line-argument-hard-error-in-future

注意:以后将不再支持此选项。解决方法 这个问题,设置ARCHFLAGS环境变量降级 错误到警告。例如,您可以安装 Python 本机 扩展名:

$ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install 扩展名

同样,您可以通过以下方式安装 Ruby Gem:

$ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName 16214764 更新

编辑历史记录

刚刚在我的机器上测试过,使用相同的 ruby​​:

$ gem install pushmeup
Fetching: pushmeup-0.1.2.gem (100%)
Successfully installed pushmeup-0.1.2
Parsing documentation for pushmeup-0.1.2
Installing ri documentation for pushmeup-0.1.2
Done installing documentation for pushmeup after 1 seconds
1 gem installed

从我看到的你没有使用rvmrbenv 所以问题不在于gcc 依赖项

根据提供的输出,错误出现在安装json-1.8.1 时。 你能把位于/Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.1/gem_make.out的日志贴出来吗?

【讨论】:

  • sh-3.2# cat /Library/Ruby/Gems/2.0.0/gems/json-1.8.1/ext/json/ext/generator/gem_make.out /System/Library/Frameworks/ Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 创建 Makefile make "DESTDIR=" 编译 generator.c 链接共享对象 json/ext/generator.bundle clang:错误:未知参数:'-multiply_definedsuppress' [ -Wunused-command-line-argument-hard-error-in-future] clang: 注意:这将是未来的硬错误(不能降级为警告) make: *** [generator.bundle] 错误 1
猜你喜欢
  • 2018-12-18
  • 2011-10-12
  • 2015-04-27
  • 2010-10-18
  • 2018-02-10
  • 2018-01-21
  • 2016-08-25
  • 2013-06-24
  • 1970-01-01
相关资源
最近更新 更多