2008年7月 5日

[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@xxxxx


投稿者 xml-rpc : 2008年7月 5日 02:08
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/74993
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。