※なんか、途中できれてました。すみません再送します。
かとんぼさん
返信ありがとうございます。
念のため、ASRのをあたらしいものに入れ替えてみました。
以下のような環境で再度確認しましたが、結果はおなじでした。
- Windows XP SP3
- ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]
- Exerb 5.1.0 (コア:ruby187c.exc)
※コアのパッチレベルまでは確認してません(ASR添付のものそのまま)
- iconv.dll はASRに添付されていたものをそのまま使ってます。
現象についての補足があります。
レシピファイルにiconv.dllを追加していない状態で作成したexeを、
iconv.dllが格納されているディレクトリ(*)へパスが通っていない環境で、
実行すると以下のエラーがコンソールに出力されます。
(* iconv.dllはASRインストール先のbinディレクトリに格納されています)
test.rb:1:in `require': Win32API Error #126 --- 指定されたモジュールが
見つかりません。
(ExerbRuntime::Error)
from test.rb:1
これと同時に、以下のようなダイアログが表示されます。
---------------------------
test.exe - コンポーネントが見つかりません
---------------------------
iconv.dll が見つからなかったため、このアプリケーションを開始できません
でした。アプリケーションをインストールし直すとこの問題は解決される場合
があります。
---------------------------
OK
---------------------------
当初、iconv.dllへパスが通っている環境でのみ動作確認していたので、この
問題に気づきませんでしたが、他の環境で実行できない場合があることに気づき
先の投稿にあるような現象を確認しました。
うーん、なんでしょうね?
(10/01/30 22:49), Masahiro Kitajima wrote:
> かとんぼと申します。
>
> 偶然ブログでこの件の記事をお見かけし、手元の環境で試したのです
> が、最初の段階から現象は再現しませんでした。
> レシピファイルへの iconv.dll の記載追加や、reauire 'iconv.so'
> とする必要もありませんでした。
>
>> - OS: Windows XP SP3
>> - Ruby: ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]
>
> 手元の環境は以下のとおりです。
>
> - OS: Windows XP SP3
> - ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]
> - Ruby のインストール先:c:\ruby187
> - Exerb 5.1.0(ruby 1.8.7p249 コア)
> - iconv : iconv-1.9.1-dll.tar.bz2
>
> ここで、c:\ruby187 以下の内容を C:\Program Files\ruby-1.8 にコ
> ピーした環境を作って試してみました。
> なぜか一度だけですが、以下の現象が再現しました。
>
> C:\tmp>mkexy test.rb
> test.rb:1:in `require': no such file to load -- iconv (LoadError)
> from test.rb:1
>
> この時生成された test.exy は以下の内容で、iconv.so が見つけられ
> なかったようです。
>
> ---- test.exy ----
> # Generated by mkexy
> # on 2010-01-30 21:56
>
> general:
> startup: test.rb
> core: cui
> kcode: none
>
> file:
> test.rb:
> ---- test.exy ----
>
> ところが現象は一度きりで、以後 Windows を再起動しても、
> mkexy test.rb でエラーとなる現象は再現できなくなりました。
>
> 私のまとめは次のとおりです。^^;
>
> (1) 最新の Exerb 5.1.0 でも、何らかの条件で mkexy が iconv.so が
> 見つけられない事がある。
> (2) しかし再現条件は不安定。
>