西谷@関西学院大・理工と申します.

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)で動かしています.ありがとうございました.