使用Ocra,LoadError从ruby文件生成可执行文件?

时间:2013-04-30 23:47:57

标签: ruby executable require ocra

我正在尝试从Windows上的几个ruby文件生成可执行文件,因此我安装了Ocra。我以为我理解了Ocra如何工作的过程,但似乎无法使可执行文件正常工作。我遇到的问题是“需要”其他ruby文件。

ruby​​程序本身可以正确编译并运行我想要的功能,而Ocra似乎创建了一个可运行的可执行文件,但是,当我尝试运行可执行文件时,我收到以下错误:

* / custom_require.rb:36:在'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”,我无法运行可执行文件。

对我做错了什么的想法?在此先感谢!!!

2 个答案:

答案 0 :(得分:2)

使用ruby&gt; = 1.9,您可以尝试require_relative

说明:ocra将所有文件存储在自己的子目录中。

如果你操纵加载路径($ :),你无法确定,ocra在执行期间使用了什么。

答案 1 :(得分:0)

这个问题已经陈旧并且已经回答,但我想在Ocra documentation中找到这个小块金,因为这里的正确答案并没有解决我的问题:

  

OCRA未设置包含路径。如果您需要“要求”,请在脚本开头使用$:.unshift File.dirname($0)   来自与主脚本相同的目录中的其他源文件。