-1

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

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

  • 我的电脑上安装了 ocra
  • 用户没有在他们的计算机上安装 ruby​​ 或 ocra
  • 我为我的程序 .exe 创建了一个带有“ocra program.rbw”命令的 .exe
  • 但是在我的源代码中,我得到了行 exec("ocra game.rbw") 不能在用户的计算机上工作,因为他没有安装 ocra gem。除了那条线,一切都运行良好。

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

4

1 回答 1

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 会被不同的解释。

于 2015-12-27T13:03:53.553 回答