Ruby on rails 安装mysql2 gem-HAVE_UINT(ushort,UINT类型重新定义错误)

Ruby on rails 安装mysql2 gem-HAVE_UINT(ushort,UINT类型重新定义错误),ruby-on-rails,ruby,rvm,mysql2,Ruby On Rails,Ruby,Rvm,Mysql2,是的,这是关于在RubyonRails中安装mysql2 gem的另一个问题。但这是我在另一个问题中找不到的错误 我已经在OS X Mountain Lion上安装了64位MySQL和RVM。在尝试安装mysql2 gem时,我不断从make中得到一个错误,关于在mysql2_ext.h中重新定义ushort和uint。我在几个不同的地方找到了该文件(显然是缓存的,因为当我重新运行gem install mysql2命令时,更改该文件没有任何作用),并在其中找到以下行: #ifndef HAVE

是的,这是关于在RubyonRails中安装mysql2 gem的另一个问题。但这是我在另一个问题中找不到的错误

我已经在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
,尽管它仍然拥有它们。我如何告诉它符号已经定义了?

事实证明,有一种方法可以指定您的CFLAGS,以强制它识别HAVE\u UINT定义。不是这样的(显然gem安装忽略了以这种方式设置的环境变量):

sudo env CFLAGS=“-DHAVE_UINT”gem安装mysql2

有关如何执行此操作,请参见:

gem安装mysql2--with cflags=\“-DHAVE\u UINT\”

成功了