我正在尝试从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”,我无法运行可执行文件。
对我做错了什么的想法?在此先感谢!!!
答案 0 :(得分:2)
使用ruby&gt; = 1.9,您可以尝试require_relative
。
说明:ocra将所有文件存储在自己的子目录中。
如果你操纵加载路径($ :),你无法确定,ocra在执行期间使用了什么。
答案 1 :(得分:0)
这个问题已经陈旧并且已经回答,但我想在Ocra documentation中找到这个小块金,因为这里的正确答案并没有解决我的问题:
OCRA未设置包含路径。如果您需要“要求”,请在脚本开头使用
$:.unshift File.dirname($0)
来自与主脚本相同的目录中的其他源文件。