mysql:4198
From: (Kikuchi Masayuki) <<makikuchi@xxxxxxxxxx>>
Date: Fri, 24 Aug 2001 12:19:56 +0900 (JST)
Subject: [mysql 04198] Re: Ruby から使えない
こんにちは、菊池といいます。 <20010823101716250.e-oohira@xxxxxxxxxx>の記事において e-oohira@xxxxxxxxxxさんは書きました。 >> ------------- >> 補足 >> ------------- >> MySQLはSolaris8パッケージからインストールしたもの。 >> MySql自体は動いている。 >> >> 原因は、どうも >> libmysqlclient.soがないからのようですが、パッケージからインストー >> ルしたためか、libmysqlclient.soがどこにもありません。 >> (libmysqlclient.a はある) >> ソースコードからインストールしようとすると別の問題でインストール >> できない。 >> >> ------------- >> 経緯 >> ------------- >> MySQL導入後 >> Ruby-1.6.4をインストール -- うまくいった >> >> mysql-ruby-2.3.2a.tar.gzを展開後以下 >> >> bash-2.03# pwd >> /space/src/mysql-ruby-2.3.2a >> bash-2.03# ruby extconf.rb >> creating Makefile >> bash-2.03# make >> bash-2.03# ruby -I. test.rb sparc.kumage-h.ed.jp >> test.rb:11:in `require': ld.so.1: ruby: 重大なエラー: 再配置エラ >> ー: ファイル ./mysql.so: シンボル inet_addr: 参照シンボルが見つか >> りません。 - ./mysql.so (LoadError) >> from test.rb:11 ldd mysql.so したら、どうなりますか。 libmysqlclient.so が見つからないというエラーは出るでしょうか。 inet_addr の実体が libmysqlclient.a にあるなら、mysql.so の作成時に スタティックリンクするようにしてあげればいいと思います。 >> なお、(別の問題として)ソースからMySQLをコンパイルしようとする >> と、 >> configure時にエラーをはきます。 >> >> bash-2.03# ./configure --prefix=/usr/local/mysql >> --localstatedir=/usr/local/mysqldata \ >> > --with-charset=ujis >> loading cache ./config.cache >> checking host system type... sparc-sun-solaris2.8 >> checking target system type... sparc-sun-solaris2.8 >> checking build system type... sparc-sun-solaris2.8 >> checking for a BSD compatible install... ./install-sh -c >> checking whether build environment is sane... yes >> checking whether make sets ${MAKE}... (cached) yes >> checking for working aclocal... missing >> checking for working autoconf... missing >> checking for working automake... missing >> checking for working autoheader... missing >> checking for working makeinfo... missing >> checking whether to enable maintainer-specific portions of >> Makefiles... no >> checking whether build environment is sane... yes >> checking whether make sets ${MAKE}... (cached) yes >> checking for gawk... (cached) nawk >> checking for gcc... (cached) gcc >> checking whether the C compiler (gcc ) works... yes >> checking whether the C compiler (gcc ) is a cross-compiler... >> no >> checking whether we are using GNU C... (cached) yes >> checking whether gcc accepts -g... (cached) yes >> checking for c++... (cached) c++ >> checking whether the C++ compiler (c++ ) works... yes >> checking whether the C++ compiler (c++ ) is a cross-compiler... >> yes inet_addr の実体が libmysqlclient.a にあるなら、mysql.so の作成時に これが原因です。 たぶん、この gcc は 64bit と 32bit の両方のコードが吐けるものなので はないでしょうか。 # 私も、このエラーを経験しましたが、その時は上記のコンパイラでコン # パイルしたときでした。 で、この時は、cross-compiler オプションを無理矢理 no にするよう、 configure ファイルを編集して、逃げました。(^^; # もっとスマートな方法があるような気もしましたが、時間がなかったもので...。 -- 菊池 雅行
4192 2001-08-23 19:17 [e-oohira <e-oohira@x] Ruby から使えない -> 4198 2001-08-24 12:19 ┣[<makikuchi@xxxxxxxxx] 4199 2001-08-24 12:36 ┣[Hiroki TANIKAWA <hir] 4202 2001-08-25 18:06 ┗[とみたまさひろ <tomm]