【问题标题】:Installing mysql2 gem - HAVE_UINT (ushort, uint type redefinition errors)安装 mysql2 gem - HAVE_UINT (ushort, uint 类型重定义错误)
【发布时间】:2013-04-08 20:54:29
【问题描述】:

是的,这是另一个关于安装 mysql2 gem 以在 Ruby on Rails 中使用的问题。但这是我无法在另一个问题中找到的错误。

我在 OS X Mountain Lion 上安装了 64 位 MySQL 和 RVM。尝试安装 mysql2 gem 时,我不断收到来自 make 的错误,关于在 mysql2_ext.h 中重新定义 ushort 和 uint。我在几个不同的地方找到了该文件(显然是缓存的,因为当我重新运行gem install mysql2 命令时更改文件没有任何作用)并在其中找到以下行:

#ifndef HAVE_UINT
#define HAVE_UINT
typedef unsigned short    ushort;
typedef unsigned int    uint;
#endif

它确实在尝试重新定义ushort 和uint,即使它仍然拥有它们。如何告诉它符号已经定义?

【问题讨论】:

    标签: ruby-on-rails ruby rvm mysql2


    【解决方案1】:

    原来有一种方法可以指定您的 CFLAGS 以强制它识别 HAVE_UINT 定义。不是这个(显然 gem 安装设法忽略了以这种方式设置的环境变量):

    sudo env CFLAGS="-DHAVE_UINT" gem install mysql2

    请参阅this question 了解如何执行此操作:

    gem install mysql2 -- --with-cflags=\"-DHAVE_UINT\"

    它成功了!

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2011-08-12
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2011-09-11
      相关资源
      最近更新 更多