2013年04月27日
自分用メモ
最近Rubyでタイピングソフトとか作ってて公開用にexe作ろうとしたらうまく行かなかった時のまとめ
ちなみにexe化はocraを使っています。ocraについては色々と詳しい説明があるので他に任せます。
問題が発生したのは以下の様な、ファイル2を読み込んで使うファイル1をexeにしようとした時
#ファイル1.rbここから
require "./ファイル2"
#中略
#終了
みたいな感じでファイル2を読み込んで(普通にRubyで)動かしてたんだけどocraでexeにしたらファイル2が無い場所で使えない(ソースがある場所なら動く)というわけでうまくファイル2を使えないらしいということに遭遇。ocraは必要なファイル読み込んで同梱してくれるんじゃなかったのかよ…
ファイルを同梱しようと思って次のように
ocra ファイル1.rb ファイル2.rb
やってもダメ(入ってるのか入ってないのかわからんけどファイル2が読めないってエラー出る)。--dllのなんとかを使ってもダメ。ファイル2のパスがうまく設定できないらしい。
でいろいろ探してたらこれを見つけた。
結局どうしたかというとrequireの行を
require File.expand_path(File.dirname(__FILE__) + './ファイル2')
としたら動いた。相対パスやら絶対パスが何とかとかいう問題らしい。
最近Rubyでタイピングソフトとか作ってて公開用にexe作ろうとしたらうまく行かなかった時のまとめ
ちなみにexe化はocraを使っています。ocraについては色々と詳しい説明があるので他に任せます。
問題が発生したのは以下の様な、ファイル2を読み込んで使うファイル1をexeにしようとした時
#ファイル1.rbここから
require "./ファイル2"
#中略
#終了
みたいな感じでファイル2を読み込んで(普通にRubyで)動かしてたんだけどocraでexeにしたらファイル2が無い場所で使えない(ソースがある場所なら動く)というわけでうまくファイル2を使えないらしいということに遭遇。ocraは必要なファイル読み込んで同梱してくれるんじゃなかったのかよ…
ファイルを同梱しようと思って次のように
ocra ファイル1.rb ファイル2.rb
やってもダメ(入ってるのか入ってないのかわからんけどファイル2が読めないってエラー出る)。--dllのなんとかを使ってもダメ。ファイル2のパスがうまく設定できないらしい。
でいろいろ探してたらこれを見つけた。
結局どうしたかというとrequireの行を
require File.expand_path(File.dirname(__FILE__) + './ファイル2')
としたら動いた。相対パスやら絶対パスが何とかとかいう問題らしい。
(22:06)