"gem install mysql" failing horribly on OS X leaopard

Discussion in 'Ruby' started by Doug Livesey, Sep 7, 2008.

  1. Doug Livesey

    Doug Livesey Guest

    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:

    <CONSOLE>
    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.

    Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include=${mysql-dir}/include
    --with-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib


    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

    </CONSOLE>

    And when I look in the mkmf.log file, at the end of a very long series
    of entries, I see this:

    <LOG>
    "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 */

    --------------------
    </LOG>

    Can anyone offer me any advice on getting this to work?
    Cheers,
    Doug.
    --
    Posted via http://www.ruby-forum.com/.
     
    Doug Livesey, Sep 7, 2008
    #1
    1. Advertising

  2. Doug Livesey

    Kem Mason Guest

    Frederick Cheung wrote:
    > On 7 Sep 2008, at 12:47, Doug Livesey 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:

    gcc -I. -I.
    -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0
    -I. -DHAVE_MYSQL_H -I/usr/local/mysql/include -Os -arch i386
    -fno-common -fno-common -arch ppc -arch i386 -Os -pipe -fno-common -c
    mysql.c
    cc -arch ppc -arch i386 -pipe -bundle -undefined dynamic_lookup -o
    mysql.bundle mysql.o -L"."
    -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L.
    -arch ppc -arch i386 -lruby -L/usr/local/mysql/lib -lmysqlclient -lz
    -lm -lpthread -ldl -lm
    #output:
    ld warning: in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of
    required architecture

    I copy / pasted the commands stripping out all the '-arch ppc'
    instances, and everything worked great for me after that.

    --
    Posted via http://www.ruby-forum.com/.
     
    Kem Mason, Apr 12, 2009
    #2
    1. Advertising

  3. Can you try the following command.

    sudo env ARCHFLAGS='-arch i386' gem install mysql -v=2.7 --
    --with-mysql-config=/usr/local/mysql/bin/mysql_config


    Kem Mason wrote:
    > Frederick Cheung wrote:
    >> On 7 Sep 2008, at 12:47, Doug Livesey 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:
    >
    > gcc -I. -I.
    > -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0
    > -I. -DHAVE_MYSQL_H -I/usr/local/mysql/include -Os -arch i386
    > -fno-common -fno-common -arch ppc -arch i386 -Os -pipe -fno-common -c
    > mysql.c
    > cc -arch ppc -arch i386 -pipe -bundle -undefined dynamic_lookup -o
    > mysql.bundle mysql.o -L"."
    > -L"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib" -L.
    > -arch ppc -arch i386 -lruby -L/usr/local/mysql/lib -lmysqlclient -lz
    > -lm -lpthread -ldl -lm
    > #output:
    > ld warning: in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of
    > required architecture
    >
    > I copy / pasted the commands stripping out all the '-arch ppc'
    > instances, and everything worked great for me after that.


    --
    Posted via http://www.ruby-forum.com/.
     
    Santhoshkumar Muniraj, Nov 16, 2009
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. SeNTry
    Replies:
    4
    Views:
    315
    SeNTry
    Dec 15, 2005
  2. Ara.T.Howard

    horribly impossible debugging task

    Ara.T.Howard, Sep 16, 2004, in forum: Ruby
    Replies:
    11
    Views:
    443
  3. Harry Ohlsen

    "gem install mysql" on Windows

    Harry Ohlsen, Jan 13, 2005, in forum: Ruby
    Replies:
    0
    Views:
    90
    Harry Ohlsen
    Jan 13, 2005
  4. adriatic
    Replies:
    2
    Views:
    227
    zdennis
    Oct 30, 2005
  5. Chris Angelico

    Python is horribly slow compared to bash!!

    Chris Angelico, May 22, 2014, in forum: Python
    Replies:
    6
    Views:
    84
    Dennis Lee Bieber
    May 28, 2014
Loading...

Share This Page