【发布时间】:2022-10-05 01:32:56
【问题描述】:
我尝试使用 ocra gem 将示例 ruby 脚本转换为可执行文件。这是我的 ruby 脚本。
puts "Hello word"
运行ocra test.rb 时出现以下错误
C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:34:in `tr': invalid byte sequence in UTF-8 (ArgumentError)
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:34:in `to_posix'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:57:in `subpath?'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:611:in `block (2 levels) in find_gem_files'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:609:in `each'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:609:in `block in find_gem_files'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:597:in `each'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:597:in `find_gem_files'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:755:in `build_exe'
from C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:1231:in `block in <top (required)>'
我的红宝石版本
ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt]
有没有将 ruby 脚本转换为可执行文件的好方法?
【问题讨论】:
-
Ruby 脚本的文件路径中可能有一个撇号。尝试将所有 Ruby 相关文件放入不包含任何 UTF-8 字符的文件路径中。这是我的猜测。只是一个猜测,但看看调用堆栈,这可能就是问题所在。
-
我试图将我的 ruby 文件放入不包含 UTF-8 字符的文件路径中,但不幸的是问题仍然存在。
-
如果没有可重现的示例,很难猜测问题可能是什么。我会尝试提交错误报告,因为它看起来可能是一个错误。 github.com/larsch/ocra/issues
-
我在 ocra github 上报告了这个问题,但我似乎被开发人员抛弃了,答案和响应是由用户彼此做出的。如果我解决了这个问题,我会在这里提出正确的解决方法。感谢您的帮助。