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