2013-04-30 36 views
1

我想從Windows上的幾個ruby文件製作一個可執行文件,所以我安裝了Ocra。我以爲我瞭解Ocra如何工作的過程,但似乎無法使可執行文件正常工作。我遇到的問題是「需要」其他ruby文件。使用Ocra,LoadError從Ruby文件製作可執行文件?

本身的Ruby程序編譯正確和功能如何,我希望它和OCRA似乎產生了一個工作可執行文件,但是,當我嘗試運行可執行文件,我得到以下錯誤:

*/custom_require.rb:36:in'require':無法加載此文件 - MainMenuDialog.rb(LoadError)*

我的主程序名爲'JobManager.rb',它創建一個新的MainMenuDialog對象,因此我包含MainMenuDialog.rb位於文件頂部,如:

$: << File.expand_path(File.dirname(__FILE__) + "/../lib") 
# Other requires here 
require("MainMenuDialog.rb") 

同樣,程序本身編譯並運行得非常好(包括require語句),並且當我運行命令ocra JobManager.rb它成功運行程序,檢查依賴關係並創建可執行文件。由於上面描述的「LoadError」,我無法運行可執行文件。

有關我在做什麼錯的任何想法?提前致謝!!!

+0

你嘗試用替換你的代碼'require_relative'? (需要ruby> = 1.9) – knut 2013-05-01 08:21:48

+0

這個技巧。我認爲「$:<< ...」這一行允許我使用「require」而不是「require_relative」,但我猜這是行不通的。謝謝! – 2013-05-09 03:10:21

+0

我從我的評論做出了回答,所以您可以確認問題得到解答。 – knut 2013-05-09 20:22:58

回答

2

隨着紅寶石> = 1.9,你可以嘗試require_relative

說明:ocra將所有文件存儲在其自己的子目錄中。

如果你操縱加載路徑($ :),你不能確定,在執行過程中ocra使用了什麼。

+1

這對我有效!謝謝!! – Selah 2013-06-06 20:26:41

0

這個問題是舊的,並回答了,但我想包括這個小金塊我Ocra documentation發現,因爲正確的答案在這裏並沒有解決我的問題:

OCRA does not set up the include path. Use $:.unshift File.dirname($0) at the start of your script if you need to 'require' additional source files from the same directory as your main script.

相關問題