0

我以前从来没有使用过 ARCHFLAGS 命令,而且我的脑子里有问题。

我正在努力让 MySQL gem 以 64 位在 Snow Leopard 上工作。

我正在做的是这个命令:

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

我看到的是它专门指定了 -arch i386,即使我告诉它不要这样做;紧接着,它给了我关于文件不是所需架构的警告,因为它不是。它是 64 位的。

运行文件命令给出了这个:

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

所以当然这不是必需的架构。似乎 gem install 忽略了我的 ARCHFLAGS 命令。知道为什么会这样吗?就像我说的那样,我对这些东西有点不知所措:P

非常感谢大家!- 凯文

4

2 回答 2

1

这是我所做的:

出口 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 上关于 Snow Leopard的评论吗?

围绕设置和安装有很多讨论可能会有所帮助。我按照Build MySQL on Snow Leopard 的建议从源代码构建 MySQL 二进制文件。

于 2009-12-18T01:20:25.637 回答