1

我正在尝试从 Windows 上的几个 ruby​​ 文件制作可执行文件,所以我安装了 Ocra。我以为我了解 Ocra 的工作过程,但似乎无法让可执行文件正常工作。我遇到的问题是“需要”其他 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”,我无法运行可执行文件。

对我做错了什么有任何想法吗?提前致谢!!!

4

2 回答 2

2

使用 ruby​​ >= 1.9 你可以尝试require_relative.

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

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

于 2013-05-09T20:21:40.113 回答
0

这个问题很老并且已经回答,但我想包括我在Ocra 文档中找到的这个小块,因为这里的正确答案没有解决我的问题:

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

于 2016-05-05T15:43:31.403 回答