曽根俊彦です。たびたびお手数おかけします。

From: matz / netlab.co.jp (Yukihiro Matsumoto) さん
Subject: [ruby-list:15629] Re: tcltklib (LoadError)
Date: Sat, 24 Jul 1999 13:21:14 +0900
Message-ID: <E117tJC-00023M-00 / ev.netlab.co.jp>

matz> |lrwxr-xr-x  1 root  wheel       32 Jul 11 11:39 libtcl80.so.1.0 ->
matz> |/usr/local/lib/libtcl80jp.so.1.0
matz> 
matz> あー、tcl80, tk80って名前なんですね。tcltklibはtcl8.x,tk8.x
matz> のような . を含む名前を期待しているんですねえ。
matz> 
matz> 新しい(まだどこにもリリースしてない)1.3.6なら
matz> 
matz>   --with-tklib=tk80 --with-tcllib=tcl80
matz> 
matz> でコンパイルできるんだが。
matz> # 見切りでリリースしちゃうか。

早速、

# ln -s /usr/local/lib/libtcl80jp.so.1.0 /usr/local/lib/libtcl8.0.so.1.0

# ln -s /usr/local/lib/libtk80jp.so.1.0 /usr/local/lib/libtk8.0.so.1.0

を実行した上で、/usr/local/src/ruby-1.3.5/ext/tcltklib/extconf.rb を

*** extconf.rb.orig	Sat Jul 24 16:40:54 1999
--- extconf.rb	Sat Jul 24 16:42:05 1999
***************
*** 76,84 ****
  if have_header("tcl.h") && have_header("tk.h") &&
      search_lib("libX11.{so*,a}", "XOpenDisplay",
  	       "/usr/lib", "/usr/openwin/lib", "/usr/X11*/lib") &&
!     search_lib("libtcl{8*,7*,}.{so,a}", "Tcl_FindExecutable",
  	       "/usr/lib", "/usr/local/lib") &&
!     search_lib("libtk{8*,4*,}.{so,a}", "Tk_Init",
  	       "/usr/lib", "/usr/local/lib")
    $LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ")
    create_makefile("tcltklib")
--- 76,84 ----
  if have_header("tcl.h") && have_header("tk.h") &&
      search_lib("libX11.{so*,a}", "XOpenDisplay",
  	       "/usr/lib", "/usr/openwin/lib", "/usr/X11*/lib") &&
!     search_lib("libtcl{8*,7*,}.{so*,a}", "Tcl_FindExecutable",
  	       "/usr/lib", "/usr/local/lib") &&
!     search_lib("libtk{8*,4*,}.{so*,a}", "Tk_Init",
  	       "/usr/lib", "/usr/local/lib")
    $LDFLAGS = $libraries.collect{|path| "-L" + path}.join(" ")
    create_makefile("tcltklib")

と修正してコンパイルしたところ、
/usr/local/lib/ruby/1.3/i386-openbsd2.5 に tcltklib.so がインストール
されました。どうもありがとうございました。

しかしながら、C MAGAZINE 1999年8月号の list6 を実行しようとすると相変
わらず、

/usr/local/lib/ruby/1.3/tk.rb:7:in `require': No such file or directory - /usr/local/lib/ruby/1.3/i386-openbsd2.5/tcltklib.so (LoadError)
        from /usr/local/lib/ruby/1.3/tk.rb:7
        from ./list6.rb:3:in `require'
        from ./list6.rb:3

とLoadError になってしまいます。/usr/local/src/ruby-1.3.5/sample にあ
るサンプルも試してみましたが、
/usr/local/lib/ruby/1.3/i386-openbsd2.5/*.so は全て LoadError になって
しまうようです。

#何か、環境変数等の設定が必要なのでしょうか?

引続きよろしくお願いします。
---
曽根俊彦(SONE Toshihiko)
<tsone / cc.rim.or.jp>