神代@地球流体電脳倶楽部と申します. 我々のグループでは,多次元データ可視化ライブラリ DCL を Ruby から扱えるように,RubyDCL という拡張ライブラリを 開発しています. Cygwin上で この RubyDCL をインストールしようとしていますが, うまくいきません. RubyDCL 中で NArray を使用しているのですが,どうも NArray へのリンクがうまくいかないようなのです. Cygwin 1.3.20-1, gcc 3.2-3 で, やったことは,以下のとおりです. 1. DCL-5.2-C.3 のインストール $ ./configure $ make $ make install * デモ(demo/grph2/ximage/ximg01.c)が動くことを確認 2. Ruby (1.6.8) のインストール $ ./configure --enable-shared $ make $ make test $ make install 3. NArray (0.5.7) のインストール $ ruby extconf.rb $ make $ make site-install * test/ 内のスクリプトが動くことを確認 4. RubyDCL (1.1.2)のインストール $ make ....途中は順調そうなのだけど.... 最後のdllwrapのところで 'undefined reference' がたくさん という感じなのです. [ruby-ext:02097]に | CygwinでNArrayを他の拡張ライブラリからリンクするとき、 | defファイルだけではうまくいかなかったので、extconf.rb に | | if RUBY_PLATFORM =~ /cygwin|mingw/ | CONFIG["DLDFLAGS"] << " --output-lib libnarray.a" | end | | と書いてインポートライブラリ?を作るようにしましたが とあったので,この libnarray.a をうまく使えば解決するので しょうか? 具体的にどのように使えばよいのでしょう. ruby-dcl-1.1.2/src/Makefile の LIBS = -L. -l$(RUBY_SO_NAME) -lcrypt のところに -lnarray と付け加えてもう一度makeすると,数は減るのですが dllwrap --target=cygwin --as=as --dlltool-name=dlltool --driver-name=gcc --expor t-all -s --def=dcl_raw.def -L/usr/local/lib/ruby/site_ruby/1.6/i586-cygwin -L/us r/local/lib -o dcl_raw.so dcl_cary2obj.o dcl_obj2cary.o dummy.o grph1_csgi.o gr ph1_scpack.o grph1_sgpack.o grph1_slpack.o grph1_stpack.o grph1_swpack.o grph2_g rpack.o grph2_ucpack.o grph2_udpack.o grph2_uepack.o grph2_ugpack.o grph2_uhpack .o grph2_ulpack.o grph2_umpack.o grph2_uspack.o grph2_uupack.o grph2_uvpack.o gr ph2_uwpack.o grph2_uxpack.o grph2_uypack.o grph2_uzpack.o init.o math1_blklib.o math1_chrlib.o math1_fnclib.o math1_gnmlib.o math1_ifalib.o math1_indxlib.o math 1_intlib.o math1_lrllib.o math1_oslib.o math1_rfalib.o math1_rfblib.o math1_subl ib.o math1_syslib.o math1_vialib.o math1_viblib.o math1_vralib.o math1_vrblib.o math1_xfclib.o math2_fftlib.o math2_intrlib.o math2_rnmlib.o math2_shtlib.o math 2_vstlib.o misc1_chnlib.o misc1_datelib.o misc1_fmtlib.o misc1_misclib.o misc1_r andlib.o misc1_timelib.o -L. -lcygwin-ruby16 -lcrypt -lnarray -L/usr/local/lib -L/usr/X11R6/lib -L/home/koshiro/dcl-5.2-C/f2clib -L/usr/local/lib -lcdcl52 -lf2 c4dcl -lSM -lICE -lX11 -lm dcl_cary2obj.o(.text+0x338): In function `crealary2na': /home/koshiro/ruby-dcl-1.1.2/src/dcl_cary2obj.c:288: undefined reference to `_cN Array' dcl_cary2obj.o(.text+0x3c0): In function `cintegerary2na': /home/koshiro/ruby-dcl-1.1.2/src/dcl_cary2obj.c:316: undefined reference to `_cN Array' dcl_cary2obj.o(.text+0x472): In function `clogicalary2na': /home/koshiro/ruby-dcl-1.1.2/src/dcl_cary2obj.c:344: undefined reference to `_cN Array' dcl_obj2cary.o(.text+0xf5): In function `dcl_obj2cintegerary': /home/koshiro/ruby-dcl-1.1.2/src/dcl_obj2cary.c:86: undefined reference to `_cNA rray' dcl_obj2cary.o(.text+0x1a7): In function `dcl_obj2crealary': /home/koshiro/ruby-dcl-1.1.2/src/dcl_obj2cary.c:112: undefined reference to `_cN Array' dcl_obj2cary.o(.text+0x25d):/home/koshiro/ruby-dcl-1.1.2/src/dcl_obj2cary.c:166: more undefined references to `_cNArray' follow collect2: ld returned 1 exit status dllwrap: gcc exited with status 1 make: *** [dcl_raw.so] Error 1 となってしまいます. 結局,narray.h で定義されるところの extern VALUE cNArray, cNArrayScalar, cComplex; の cNArray がわからないようなのです. 何かわかる方がおられましたら,教えてください. よろしくお願いします. -- 神代 剛 / こうしろ つよし