From: wei Date: 2008-07-05T02:08:28+09:00 Subject: [ruby-list:45192] Re: ソース:インストール:MacOSX10.3.9 ヱイです。 以下の環境で試しました。 MacOSX 10.5.4 (intel mac) Tcl/Tk 8.5.3 ruby 1.9.0-2 Tcl/Tkはソースからインストールしています。 configureオプションは以下で行なっています。 Tcl ./configure --enable-threads --enable-shared --enable-framework Tk ./configure --with-tcl=../../tcl8.5.3/macos --enable-threads -- enable-shared --enable-aqua --enable-framework rubyに関しては以下のようにしています。 ./configure --prefix=${HOME}/tmp/ruby192 --with-readline-dir=/opt/ local --enable-shared --enable-pthread --enable-tcltk-framework tcltklib.cのpatchをあててビルド この状態で ext/tk/sample/demos-jp/widget を実行すると、天野さんの報告にあった、以下のエラーが出力され ました。 % ruby widget Tk_MacOSXSetupTkNotifier: first [load] of TkAqua has to occur in the main thread! Abort % Tcl/Tkを手動でインストールする前は問題なく起動しております。 つまり手動でインストールした事により、該当の現象が Intel Macでも起きました。 という事で、永井さんのメールにあった、 module TkCore; RUN_EVENTLOOP_ON_MAIN_THREAD = true; end require 'tk' というようにrequireの前に持って来て実行した所、無事に起 動しました。 という事で、 ・Intel MacでもTcl/Tkによっては問題の現象が起きる ・問題の現象が起きてもmain threadで実行すれば解決する (少くてもIntel Macでは) となりそうです。 以上です。 ---- ヱイ weimayamiew@gmail.com