我在做一个
sudo gem安装mysql
在OS X上安装mysql gem。此操作失败,并显示以下输出:
构建本机扩展。这可能需要一段时间。
错误:安装mysql时出错:
错误:无法构建gem本机扩展。
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
正在检查mysql_ssl_set()...是
正在检查rb_str_set_len()...是
正在检查rb_thread_start_timer()...不是
正在检查mysql.h...是
创建Makefile
使"DESTDIR=“干净
制作"DESTDIR=“
编译mysql.c
链接共享对象mysql/mysql_api.bundle
clang:错误:未知参数:'-multiply_definedsuppress‘-Wunused command-line->参数-hard-error-in-future
clang:注意:这将是一个硬错误(不能降级为警告)。
make:* mysql_api.bundle错误1
make失败,退出代码%2
Gem文件将保留安装在/Library/Ruby/Gems/2.0.0/gems/mysql-2.9.1中以供检查。
结果记录到/Library/Ruby/Gems/2.0.0/extensions/universal-darwin-13/2.0.0/mysql-2.9.1/gem_make.out
知道是什么原因造成的吗?我已经安装了mysql的自制软件,如果这是有区别的。
发布于 2014-03-12 14:23:16
From Apple's Xcode/Clang release notes:
Xcode5.1中的Apple LLVM编译器
将无法识别的命令行选项视为错误。在构建Python原生扩展和Ruby Gems时,已发现此问题,其中当前指定了一些无效的编译器选项。使用无效编译器选项的项目将需要更改以删除这些选项。为了帮助实现这一转换,编译器将临时接受一个选项,将错误降级为警告:
-Wno-error=unused-command-line-argument-hard-error-in-future
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName
发布于 2014-03-12 09:38:26
这似乎是苹果rbconfig.rb的一个问题:
$ grep -n DLDFLAGS /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb
82: CONFIG["LIBRUBY_DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress -install_name $(libdir)/$(LIBRUBY_SO) -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(ruby_version) $(XLDFLAGS)"
84: CONFIG["EXTDLDFLAGS"] = ""
125: CONFIG["DLDFLAGS"] = "-undefineddynamic_lookup -multiply_definedsuppress"
删除-multiply_definedsuppress
应允许其安装。
发布于 2014-03-14 11:56:05
这是由于Xcode 5.1 -它已经作为一个bug报告给了Ruby。
https://bugs.ruby-lang.org/issues/9624
这里还有一些额外的讨论:Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: '-multiply_definedsuppress'
https://stackoverflow.com/questions/22312583
复制相似问题