From: Paul DuBois Date: 2003-06-25T07:41:05+09:00 Subject: Re: Newbie dbi install problem At 2:22 +0900 6/25/03, David D'Andrea wrote: >On Tuesday, June 24, 2003, at 12:04 PM, Paul DuBois wrote: > >>At 17:39 +0900 6/24/03, David D'Andrea wrote: >>>Appreciate the pointer, pretty ug primitive mistake there. >>> >>>However I still can't get this to work. I think the mysql DBD >>>isn't getting installed properly. >>> >>>[~/Desktop/mysql-ruby-2.4.4a]% ruby extconf.rb >>>--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... yes >>>checking for mysql.h... yes >>>creating Makefile >>>% make >>>gcc -fno-common -g -O2 -fno-common -pipe -no-cpp-precomp -I. >>>-I/sw/lib/ruby/1.6/powerpc-darwin6.6 -I. -I/sw/include >>>-DHAVE_MYSQL_H -I/sw/include -I/usr/local/mysql/include -c -o >>>mysql.o mysql.c >>>mysql.c: In function `Init_mysql': >>>mysql.c:1420: `ER_SUBSELECT_NO_' undeclared (first use in this function) >>>mysql.c:1420: (Each undeclared identifier is reported only once >>>mysql.c:1420: for each function it appears in.) >>>make: *** [mysql.o] Error 1 >>>% ruby -I. ./test.rb localhost root lovelypass >>>./test.rb:11:in `require': No such file to load -- ./mysql (LoadError) >>> from ./test.rb:11 >>>'%make install' here fails too, and running simple.rb still >>>returns the same error (undefined method, DBI::InterfaceError) >> >>Hmm, that's weird. Looks like the configuration process (which configures >>mysql.c) doesn't look for digits in the error constant names. Try this >>patch and let us know what happens: >> >>--- extconf.rb.orig Sat Feb 22 20:20:50 2003 >>+++ extconf.rb Tue Jun 24 11:02:53 2003 >>@@ -44,7 +44,7 @@ >> next unless l =~ /errmsg\.h|mysqld_error\.h/ >> fn = l.split(/\"/)[1] >> IO::foreach(fn) do |m| >>- if m =~ /^#define\s+([CE]R_[A-Z_]+)/ then >>+ if m =~ /^#define\s+([CE]R_[A-Z0-9_]+)/ then >> error_syms << $1 >> end >> end >> >>If that works for you (it does for me), I'll send the patch to Tomita. > >Thank you for the patch. It seems to help, make now gets further >but fails on the link... >(What file is it looking for? Maybe I need to set some PATH variable??) >(extconf.rb and test.rb before & after make produce the same output as above) > >% make >gcc -fno-common -g -O2 -fno-common -pipe -no-cpp-precomp -I. >-I/sw/lib/ruby/1.6/powerpc-darwin6.6 -I. -I/sw/include >-DHAVE_MYSQL_H -I/sw/include -I/usr/local/mysql/include -c -o >mysql.o mysql.c >cc -dynamic -bundle -undefined suppress -flat_namespace >-L/usr/local/mysql/lib -L/sw/lib -o mysql.bundle mysql.o -L. -lruby >-lmysqlclient -lz -lm >ld: can't locate file for: -lruby >make: *** [mysql.bundle] Error 1 > >David Can't help you there. I use the Ruby that comes with Mac OS X, not one installed under /sw. Is that a Fink-installed version? Here's what I see on my machine: % make gcc -fno-common -g -Os -pipe -no-cpp-precomp -pipe -pipe -no-precomp -I. -I/usr/lib/ruby/1.6/powerpc-darwin6.0 -I. -I/usr/include -DHAVE_MYSQL_H -I'/usr/local/mysql/include/mysql' -c -o mysql.o mysql.c gcc: unrecognized option `-no-precomp' cc1: warning: changing search order for system directory "/usr/include" cc1: warning: as it has already been specified as a non-system directory cc -dynamic -bundle -undefined suppress -flat_namespace -L/usr/lib/ruby/1.6/powerpc-darwin6.0 -L/usr/lib -o mysql.bundle mysql.o -L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lm -L/usr/local/ssl/lib -lssl -lcrypto Mine's not even looking for -lruby.