神代です.

無事解決しました.

On Mon, Mar 17, 2003 at 03:18:16PM +0900, KOSHIRO Tsuyoshi wrote:

| On Sat, Mar 15, 2003 at 12:54:04AM +0900, Takaaki Tateishi wrote:
| 
| | > NArrayソース中の narray.def に cNArray を加えて NArray を
| | > インストールしなおして,RubyDCL を -lnarray つきで make すると,
| | > エラーなしで終了しました.
| | > うまくいったと思ったんですが,demo/ 以下のスクリプトを実行してみると,
| | > $ ruby ximg01.rb
| | > /usr/local/lib/ruby/site_ruby/1.6/numru/dcl.rb:2: [BUG] Segmentation fault
| | > ruby 1.6.8 (2002-12-24) [i586-cygwin]
| | > Aborted (core dumped)
| | 
| | どういうエラーだったのかは覚えてないので自身はないのですが,
| | cNArrayを使うところで,以下のものを加えてみるとどうでしょうか?
| | 
| |   __declspec(dllimport) VALUE cNArray
| 
| NArray のほうは,上記のとおり narray.def に cNArray を加えて
| インストールしたあと,
| 
| narray.h の
| 
| extern VALUE cNArray
| 
| の部分を
| 
| extern __declspec(dllimport) VALUE cNArray
| 
| として RubyDCLを -lnarray つきで make してみましたが,同じ結果でした.

それだけでは駄目でした.
原因は別のところにもありました.

上記の変更に加えて,

RubyDCL の init.c の Init_dcl_raw() で

extern VALUE ruby_class;

という行がありましたので,これを

extern __declspec(dllimport) VALUE ruby_class;

としたらうまくいきました.
附属のデモプログラムが正常に動作することを確認しました.


立石さん,田中さん,どうもありがとうございました.


-- 
神代  剛  /  こうしろ つよし  / 地球流体電脳倶楽部