是的,这是关于安装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
,即使它仍然有它们。我如何告诉它已经定义了符号?
答案 0 :(得分:1)
事实证明,有一种方法可以指定CFLAGS以强制它识别HAVE_UINT定义。它不是这个(显然gem安装设法忽略以这种方式设置的环境变量):
sudo env CFLAGS =“ - DHAVE_UINT”gem install mysql2
有关如何执行此操作,请参阅this question:
gem install mysql2 - --with-cflags = \“ - DHAVE_UINT \”
它有效!