0

私はこれまでARCHFLAGSコマンドを使用したことがなく、頭を悩ませています。

MySQLgemを64ビットのSnowLeopardで動作させるのに苦労しています。

私がしているのはこのコマンドです:

sudo env ARCHFLAGS='-arch x86_64' gem install --verbose --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

出力は次のようになります。

.....
make
gcc -I. -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I. -DHAVE_RB_THREAD_START_TIMER -DHAVE_MYSQL_H  -I/usr/local/mysql/include/mysql -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT  -DDONT_DECLARE_CXA_PURE_VIRTUAL -fno-common -g -O2  -fno-common -pipe -fno-common  -arch i386 -c mysql.c
cc -dynamic -bundle -undefined suppress -flat_namespace -arch i386 -L"/usr/local/lib" -o mysql_api.bundle mysql.o  -lruby -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm  -lpthread -ldl -lobjc  
ld: warning: in /usr/local/mysql/lib/mysql/libmysqlclient.dylib, file is not of required architecture

make install
/usr/bin/install -c -m 0755 mysql_api.bundle /usr/local/lib/ruby/gems/1.8/gems/mysql-2.8.1/lib
Successfully installed mysql-2.8.1
1 gem installed

私が見ているのは、私がそうしないように言っているのに、それが-archi386を具体的に指定しているということです。直後に、必要なアーキテクチャではないため、ファイルが必要なアーキテクチャではないという警告が表示されます。64ビットです。

fileコマンドを実行すると、次のようになります。

file /usr/local/mysql/lib/mysql/libmysqlclient.dylib 
/usr/local/mysql/lib/mysql/libmysqlclient.dylib: Mach-O 64-bit dynamically linked shared library x86_64

もちろん、これは必須のアーキテクチャではありません。geminstallが私のARCHFLAGSコマンドを無視しているようです。なぜこれになるのか、何か考えはありますか?私が言ったように、私はこのようなものに頭を悩ませています:P

どうもありがとうございました!-ケビン

4

2 に答える 2

1

これが私がしたことです:

export ARCHFLAGS = "-arch x86_64"

sudo gem install --no-rdoc --no-ri mysql -v 2.7 --- with-mysql-config = / usr / local / mysql / bin / mysql_config

後続のバージョンに問題があるようだったので、バージョン2.7を指定しました。最新バージョンを試して、最初に機能するかどうかを確認します。

于 2010-10-20T04:15:57.817 に答える
0

Rails + MySQL onSnowLeopardのコメントを確認しましたか

セットアップとインストールに関して多くの議論があり、役立つかもしれません。私は、SnowLeopardでMySQLをビルドするからのアドバイスに従ってソースからMySQLバイナリをビルドします。

于 2009-12-18T01:20:25.637 に答える