Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ARCHFLAGS未接受命令(雪豹上的MySQL 64位ruby gem安装问题)_Mysql_Ruby On Rails_Gem_64 Bit - Fatal编程技术网

ARCHFLAGS未接受命令(雪豹上的MySQL 64位ruby gem安装问题)

ARCHFLAGS未接受命令(雪豹上的MySQL 64位ruby gem安装问题),mysql,ruby-on-rails,gem,64-bit,Mysql,Ruby On Rails,Gem,64 Bit,我以前从来没有使用过ARCHFLAGS命令,我简直是疯了 我正在努力让MySQL gem在64位的雪豹上运行 我现在做的是这个命令: 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/

我以前从来没有使用过ARCHFLAGS命令,我简直是疯了

我正在努力让MySQL gem在64位的雪豹上运行

我现在做的是这个命令:

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命令将提供以下功能:

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安装似乎忽略了我的ARCHFLAGS命令。知道为什么会这样吗?就像我说的,我在这件事上有点不知所措:P


非常感谢大家凯文

你看过网站上的评论了吗

有很多关于设置和安装的讨论可能会有所帮助。我根据

中的建议从源代码构建MySQL二进制文件,以下是我所做的:

export ARCHFLAGS=“-arch x86_64”

sudogem安装--没有rdoc--没有rimysql-v2.7--使用mysql config=/usr/local/mysql/bin/mysql\u config


我指定了版本2.7,因为后续版本似乎有问题。我会先试用最新版本,看看它是否有效。

是的,我已经从源代码构建了MySQL二进制文件。当我运行'file'命令时,它说它是在x86_64中构建的,所以我认为这是正确的。我已经尽可能地遵循了所有其他说明,但我要补充一点,我不知道-这对我来说都是全新的,所以如果我错了,请随时纠正我。不过,我传递的archflags参数似乎没有被接受,对吗?或者不需要?64位需要x86_64而不是i386。是的,不需要在Snow Leopard中指定两者。我将把它从“-arch i386-arch x86_64”改为“-arch x86_64”。