[exerb-dev:386] Re: ruby1.8.0でwin32ole を利用したスクリプトをexe 化できない

Back to archive index

岩崎 弘孝 IH000****@mb*****
2003年 10月 17日 (金) 09:44:35 JST


岩崎です。

Yuyaさん 早速のご返事ありがとうございます。

> 
>  まず始めにお伺いしたいのですが、利用した win32ole.so は1.6用
> でしょうか?それとも1.8用でしょうか?
1.8系のつもりです。

activescript rubyのサイトからもってきたものに付属のものを使っている
はずなので。

> コンパイル環境がないのなら、どこからかバイナリをダウンロード
> されたのだと思いますが、どちらから入手されましたか?
> それと、Exerbのバージョン番号を書いて頂けると助かります。

http://exerb.sourceforge.jp/#download です。
バージョンは2.6.7です。

確認は以下のようにしたのですが、もっと簡単に確認するには
どうすればよいですか?

ruby -r exerb.rb -e "puts Exerb::VERSION"

> 
> > exrb/mkrbcで自動作成された.rbcファイルは
> >   > # generated by mkrbc.rb
> >   > kcode   none
> >   > script  ex.rb
> >   > library win32ole.so     C:/Program
> > Files/ruby-1.8/lib/ruby/1.8/i386-mswin32/win32ole.so
> ...
> > ruby -S exerb.rb ex.rbc
> 上記のレシピファイル、コマンドだと、デフォルトのruby168c.rbx
> コアファイルが使用されます。
> 1.8系のコアファイルを使用する場合は、Exerb Core Collectionを
> 別途インストールの上、exerb.rbの-c/-Cオプション、または
> レシピファイルでcorename、corepathを指定する必要があります。
> 1.6系コアで1.8用の拡張ライブラリは使えませんし、逆もまた真なり。
> 

まったく原理を理解していませんし、基本的注意事項が
理解できていませんでした(ごめんなさい)。

ruby168c.rbx,rbuby168g.rbxとはruby 1.68専用なんですか?
拡張ライブラリを利用していないスクリプトを
1.8のruby本体+ruby168c.rbxでexeかできたので制限が
ゆるいのかと思っていました。

拡張ライブラリがからむものは絶対に1.6,1.8混在がだめと
いうことなので1.8系のコアをインストールして、やってみます。

ところで ruby1.6.7のapolloがあったのでそれでwin32oleの
スクリプトをexeかしましたが、
「"ruby lib version (1.6.7) doesn't match executable version (1.6.8)"」
の例外があがっていました。

ruby168cなどは完全に1.6.8専用と捉える必要がありますか?
( apolloの場合無条件でphi.rbないでconfig.rbをrequireしているし、
  上記の例外は専用の例外をあげているのでもないようなので
  今は、rbconfig.rbのソースを修正して無理やり動かしています)

現在試用中なのでまだまだ質問があると思いますので
今後とも宜しくお願いします。







exerb-developer メーリングリストの案内
Back to archive index