Ruby:我的程序创建.exe但不能没有安装在另一台计算机上的ocra

时间:2015-12-26 22:18:49

标签: ruby computer-science ocra

Ocra是一个ruby gem,将ruby文件源代码“转换”为.exe文件,因此任何没有安装ruby的用户都可以使用该生成的文件启动该程序。

我正在创建一个游戏编辑器,因此我需要一种在用户想要的时候创建可执行文件的方法。

  • 我的计算机上安装了ocra
  • 用户的计算机上未安装ruby或ocra
  • 我为我的程序.exe
  • 创建了一个带有“ocra program.rbw”命令的.exe文件
  • 但是在我的源代码中,我得到的行exec(“ocra game.rbw”)无法在用户的计算机上运行,​​因为他没有安装ocra gem。执行该行,一切运作良好。

嗯,这是我的问题,如何在不告诉用户安装该gem的情况下使用ocra命令?一种要求(要求'ocra'不起作用),或者另一种创建可执行文件的方式。

1 个答案:

答案 0 :(得分:0)

感谢Raffael的回答,它的工作方式如下:

忘记在程序中使用exec("ocra game.rbw")的想法。在安装了ocra的计算机上,我创建了一个带有game.rbw的基本game.exe,由于eval,将对其进行不同的解释。我们的想法是,不是为每个不同的项目创建一个新的.exe,我们将通过源代码解释来设置它。

如果你有类似的东西进入game.rbw:

Dir.entries("SourceCode").each do |code|
    require_relative "SourceCode/" + code if code.include?(".rb")
end

将其替换为:

Dir.entries("SourceCode").each do |code|
    eval(File.open("SourceCode/" + code, "r:UTF-8").readlines.join("\n")) if code.include?(".rb") 
end

如果设置了源代码的一部分,下次启动game.exe时会有不同的解释。