Ruby:我的程序创建了 .exe,但如果没有在另一台计算机上安装 ocra 就不能
Ruby : my program creates .exe but can't without ocra installed in another computer
Ocra 是一个 ruby gem "transforming" ruby 文件源代码到 .exe 文件,因此任何未安装 ruby 的用户都可以启动使用生成的文件进行编程。
我正在创建游戏编辑器,因此我需要一种方法来在用户需要时创建可执行文件。
- 我的电脑上安装了ocra
- 用户未在其计算机上安装 ruby 或 ocra
- 我用 "ocra program.rbw" 命令为我的程序 .exe 创建了一个 .exe
- 但是在我的源代码中,我得到了无法在用户计算机上运行的行 exec("ocra game.rbw"),因为他没有安装 ocra gem。除了那条线,一切正常。
好吧,这是我的问题,我如何在不告诉用户安装 gem 的情况下使用 ocra 命令?一种要求(要求 'ocra' 不起作用),或另一种创建可执行文件的方法。
感谢 Raffael 的回答,它是这样工作的:
忘记在程序中使用 exec("ocra game.rbw")
的想法。在我安装了 ocra 的计算机上,我创建了一个基本的 game.exe 和 game.rbw,由于 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 将会有不同的解释。
Ocra 是一个 ruby gem "transforming" ruby 文件源代码到 .exe 文件,因此任何未安装 ruby 的用户都可以启动使用生成的文件进行编程。
我正在创建游戏编辑器,因此我需要一种方法来在用户需要时创建可执行文件。
- 我的电脑上安装了ocra
- 用户未在其计算机上安装 ruby 或 ocra
- 我用 "ocra program.rbw" 命令为我的程序 .exe 创建了一个 .exe
- 但是在我的源代码中,我得到了无法在用户计算机上运行的行 exec("ocra game.rbw"),因为他没有安装 ocra gem。除了那条线,一切正常。
好吧,这是我的问题,我如何在不告诉用户安装 gem 的情况下使用 ocra 命令?一种要求(要求 'ocra' 不起作用),或另一种创建可执行文件的方法。
感谢 Raffael 的回答,它是这样工作的:
忘记在程序中使用 exec("ocra game.rbw")
的想法。在我安装了 ocra 的计算机上,我创建了一个基本的 game.exe 和 game.rbw,由于 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 将会有不同的解释。