安装mysql2 gem - HAVE_UINT (usshort, uint类型重定义错误)



是的,这是关于在Ruby on Rails中安装mysql2 gem的另一个问题。但这是一个我在另一个问题中没有找到的错误。

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

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

它确实试图重新定义ushortuint,即使它仍然有它们。我如何告诉它这些符号已经被定义了?

结果是有一种方法来指定您的CFLAGS来强制它识别HAVE_UINT定义。不是这样的(显然gem安装会设法忽略这样设置的环境变量):

sudo env CFLAGS="-DHAVE_UINT" gem install mysql2

请参阅下面的问题:

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

它成功了!

相关内容

最新更新