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



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

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

  • 我的电脑上安装了ocra
  • 用户的计算机上没有安装ruby或ocra
  • 我用"ocra program.rbw"命令为我的程序.exe创建了一个.exe
  • 但在我的源代码中,我得到了行exec("ocragame.rbw"),它不能在用户的计算机中工作,因为他没有安装ocragem。除此之外,一切都很顺利

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

感谢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时会有不同的解释。

相关内容

最新更新