[前][次][番号順一覧][スレッド一覧]

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]