0

スクリプトの圧縮に問題があります。

main.rb と Subfolder/Class.rb のようなサブフォルダーにいくつかのクラスがあります。 main.rb では、次のように宣言されたクラスがあります。

「./サブフォルダー/Class.rb」が必要です

メインスクリプトを実行するだけで動作します。また、私のexeは、main.rbと同じ場所にある場合に機能します。
しかし、exeを別の場所に置くと、次のエラーが発生します。

C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/lib/ruby/site_ruby/1.9.1/rubyge
ms/custom_require.rb:36:in `require': cannot load such file -- ./Parsing/Calibra
tionState (LoadError) from C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/lib/ruby/site_ruby
/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/src/main.rb:9:in `
<main>'

どうにかして依存関係をexeに入れることはできますか?
私もそのようにそれらを含めようとしました:

ocra main.rb Subfolder/*.rb

しかし、それは役に立ちません。

4

2 に答える 2

1

あなたのプロジェクトから ruby​​ gem を作ってみましたか? http://guides.rubygems.org/make-your-own-gem/

Gem は独自の依存関係を定義します。

于 2013-03-14T11:44:23.033 に答える
-1

あなたのrequireは、現在のディレクトリからの相対パスを使用しています(「./」で始まるため、これを確認できます

代わりに、次を試してください。

「サブフォルダー/Class.rb」が必要です

そして、$LOAD_PATH にすべての ruby​​ コードが展開されている場所が含まれていることを確認してください (これは、$0 を調べることで確認できます (または、$0 からのフル パスを見つけ出し、フル パスを含む .rb を要求します)。

于 2013-10-16T01:29:05.447 に答える