西谷@関西学院大・理工と申します. Ruby/TkのMac OSX10.6上へのinstallで永井さんにB お世話になったので,報告しておきます. >> Mac OSX 10.6.2 intel core2 duo >> にデフォルトのrubyで >> [bobsNewMacBook:~] bob% ruby -rtk -ve 'Tk.mainloop' >> ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] >> ruby: no such file to load -- tk (LoadError) >> なのでruby-1.8.7-p249を >> ./configure --prefix=/opt/local --enable-shared --enable-pthread --enable-tcltk-framework >> でインストール.すると, >> [bobsNewMacBook:~/ruby] bob% /opt/local/bin/ruby -rtk -ve 'Tk.mainloop' >> ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0] >> /opt/local/lib/ruby/1.8/i686-darwin10.2.0/tcltklib.bundle: dlopen(/opt/local/lib/ruby/1.8/i686-darwin10.2.0/tcltklib.bundle, 9): Symbol not found: _Tk_Init (LoadError) >> Referenced from: /opt/local/lib/ruby/1.8/i686-darwin10.2.0/tcltklib.bundle >> Expected in: flat namespace >> in /opt/local/lib/ruby/1.8/i686-darwin10.2.0/tcltklib.bundle - /opt/local/lib/ruby/1.8/i686-darwin10.2.0/tcltklib.bundle >> from /opt/local/lib/ruby/1.8/tk.rb:6 >> となる. > > Mac OSX 10.6.2 の ruby が 64bit で make されていることが原因です. > そのため architecture が x86_64 になっているのですが, > Tcl/Tk の方は architecture が i386 になっているためにリンクできないのです. > > # -arch オプションを付けずに make すると x86_64 で compile されます. > > ですが,Tcl/Tk を Mac OSX 10.6.2 の環境で > -arch x86_64 で make しようとしても, > >> tcl,tkの8.5.8および8.5.2のcompileを試み$?$H$3$m >> /tkMacOSXBitmap.c >> あたりのcompileでこけます. > > という状態になって make できません. > > # 私も Mac OSX の初心者なので詳しくはないのですが,B > # XCode のバージョンが上がった影響で compile できなくなっているようです. > > 対策としては, > > (1) 既存の Tcl/Tk (arch が i386) とリンクできるように, > ruby を 32bit (-arch i386 を設定する) で make する. >> >> LDFLAGS="-arch i386" CFLAGS="-arch i386 -mmacosx-version-min=10.5 -D_FILE_OFFSET_BITS=64" ./configure --enable-pthread --enable-tcltk-framework > > > (2) Tcl/Tk の最新のソースを CVS からダウンロードして(B x86_64 で make する > (リリースされているものはまだですが,CVS 上では対策ができています). > その新しい Tcl/Tk を使うように ruby も 64bit で make する. > > ということになると思います. > > # 最新の Tcl/Tk を使って 32bit 版で make するというのも可です. > > なお,Aqua 版の Tk では,最新版でも未だに IM による日本語入力はダメ > (コピー & ペーストは OK) のようです. > 日本語入力を多く行う GUI を作成するのであれば, > X 版の Tk を make する方がいいかもしれません. 対策(1)で動かしています.ありがとうございました.