Hi – I’m having trouble getting the mysql gem to install on an OS X
Leopard machine.
Typical output I get from the console is this:
esft 523 $ sudo env ARCHFLAGS="-arch i386" gem install mysql --
--with-mysql-include=/usr/local/mysql/include
--with-mysql-lib=/usr/local/mysql/lib
Password:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb install mysql –
–with-mysql-include=/usr/local/mysql/include
–with-mysql-lib=/usr/local/mysql/lib
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… no
checking for mysql_query() in -lmysqlclient… no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Gem files will remain installed in
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
And when I look in the mkmf.log file, at the end of a very long series
of entries, I see this:
"gcc -o conftest -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I.
-I/usr/local/mysql/include -I/usr/local/include -g -O2 -fno-common
-pipe -fno-common conftest.c -L"/usr/local/lib"
-L"/usr/local/mysql/lib" -L"/usr/local/lib" -L"/usr/local/lib/mysql"
-arch i386 -lz -lm -lruby-static -lmysqlclient -lz -lm -lpthread -ldl
-lobjc "
ld: warning in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of
required architecture
Undefined symbols:
"_mysql_query", referenced from:
_t in ccxGmlzF.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: /*top*/
2: int main() { return 0; }
3: int t() { mysql_query(); return 0; }
/* end */
Can anyone offer me any advice on getting this to work?
Cheers,
Doug.
ld: warning in /usr/local/mysql/lib/libmysqlclient.dylib, file is
not of
required architecture
This appears to be the key bit: you’re asking for an i386 executable
but that library is apparently a different architecture (lipo -
detailed_info /usr/local/mysql/lib/libmysqlclient.dylib will tell you
what it is)
Cheers for that – could it be I have installed the wrong version of
MySQL?
I grabbed it when I’d just got my Mac & had never used one before.
The results from typing in what you suggest are:
input file /usr/local/mysql/lib/libmysqlclient.dylib is not a fat file
Non-fat file: /usr/local/mysql/lib/libmysqlclient.dylib is architecture:
ppc
That looks to me like I should maybe reinstall MySQL with the proper
DMG?
& thanks for your help,
Doug.
sudo env ARCHFLAGS=’-arch i386’ gem install mysql -v=2.7 –
–with-mysql-config=/usr/local/mysql/bin/mysql_config
Kem Mason wrote:
Frederick C. wrote:
On 7 Sep 2008, at 12:47, Doug L. wrote:
ld: warning in /usr/local/mysql/lib/libmysqlclient.dylib, file is
not of
required architecture
This appears to be the key bit: you’re asking for an i386 executable
but that library is apparently a different architecture (lipo -
detailed_info /usr/local/mysql/lib/libmysqlclient.dylib will tell you
what it is)
Fred
I did this, and my libmysqlclient.dylib was i386 – but I noticed the
compiler commands were:
ld: warning in /usr/local/mysql/lib/libmysqlclient.dylib, file is
not of
required architecture
This appears to be the key bit: you’re asking for an i386 executable
but that library is apparently a different architecture (lipo -
detailed_info /usr/local/mysql/lib/libmysqlclient.dylib will tell you
what it is)
Fred
I did this, and my libmysqlclient.dylib was i386 – but I noticed the
compiler commands were: