0

はい、これは Ruby on Rails で使用する mysql2 gem のインストールに関する別の質問です。しかし、それは別の質問にリストされているのを見つけることができなかったエラーです。

OS X Mountain Lion に 64 ビットの MySQL と RVM をインストールしました。mysql2 gem をインストールしようとすると、mysql2_ext.hmakeの再定義に関するエラーが発生し続けます。そのファイルをいくつかの異なる場所で見つけました(コマンドを再実行してもファイルを変更しても何も起こらなかったため、キャッシュされているようです)、その中に次の行が見つかりました:ushortuintgem 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 に答える