mysql:4202
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sat, 25 Aug 2001 18:06:37 +0900
Subject: [mysql 04202] Re: Ruby から使えない
とみたです。 On Thu, 23 Aug 2001 19:17:57 +0900 e-oohira <e-oohira@xxxxxxxxxx> wrote: > 原因は、どうも > libmysqlclient.soがないからのようですが、パッケージからインストー > ルしたためか、libmysqlclient.soがどこにもありません。 > (libmysqlclient.a はある) Solaris の MySQL パッケージがどうなっているか良くしりませんが、Linux の RPM だと MySQL-shared というパッケージが本体とは別になっていて、そっちに libmysqlclient.so が入っているようです。 > 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 libmysqlclient.a が必要としているライブラリがあって、それがリンクされて いないからだと思います。 man inet_addr とすると、必要なライブラリも記述されていると思います。 # ネットワーク関係のライブラリは -lnsl だったかなぁ…。Solaris で開発しなく # なって久しいので忘れてしまった…。 もしかしたら、他にも -lm とか -lz とかも必要かもしれません。 > なお、(別の問題として)ソースからMySQLをコンパイルしようとする > と、 > configure時にエラーをはきます。 〜〜 > checking for c++... (cached) c++ > checking whether the C++ compiler (c++ ) works... yes > checking whether the C++ compiler (c++ ) is a cross-compiler... > yes 〜〜 > checking return type of sprintf... configure: error: can not run > test program while cross compiling なんか c++ がクロスコンパイラだと思われているみたいですね…。 それが原因かどうかはわかりませんが、とりあえず c++ じゃなくて gcc を 使ってコンパイルしてみてはいかがでしょうか。 % env CXX=gcc ./configure 〜〜 -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
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]