0

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

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

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

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

4

1 回答 1

1

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

sudo env CFLAGS="-DHAVE_UINT" gem install mysql2

请参阅此问题以了解如何执行此操作:

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

它奏效了!

于 2013-04-08T20:54:29.293 回答