gpt4 book ai didi

ruby - 将ruby脚本编译成exe?

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:03 27 4
gpt4 key购买 nike

是否可以在 Windows 上将 ruby​​ 脚本编译成 .exe 文件?我到处搜索并尝试了以下方法(看起来 RubyScript2EXE、Shoes 和 Crate 似乎都死了或被遗弃了。):

  1. http://ocra.rubyforge.org/
  2. http://exerb.sourceforge.jp/index.en.html

我在 Windows 7 Ultimate(64 位)上使用 Ruby 1.8.7 从一个干净的系统我这样做:

  1. 从 ruby​​installer.org 安装 RubyInstaller 1.8.7-p358
  2. gem 安装 watir
  3. gem 安装 ocra
  4. git clone git://github.com/snaury/exerb-mingw.git
  5. cd exerb-mingw
  6. ruby setup.rb

我有一个相当简单的脚本来执行此操作:

require 'rubygems'
require 'watir'
browser = Watir::Browser.new
browser.goto 'http://slashdot.org'

当我运行 Ocra 时,我没有收到任何错误消息,也没有任何反应:

ocra --output test.exe test.rb
=== Loading script to check dependencies

Exerb 似乎是一个更好的解决方案,因为它编译为 rbc,而且它确实做了一些事情:

ruby -r exerb/mkexy test.rb
# Window pops up and after I close it it writes out test.exy
C:\Users\jonathan\dev\Citation>exerb test.exy
C:/Ruby187/lib/ruby/site_ruby/1.8/exerb/recipe.rb:146:in `add_file_entry': test.
exy: no such file -- C:/Ruby187/lib/ruby/gems/1.8/gems/win32-api-1.4.8-x86-mingw32/lib/win32/ruby18/win32/api.so (RuntimeError)
from C:/Ruby187/lib/ruby/site_ruby/1.8/exerb/recipe.rb:86:in `create_archive'
from C:/Ruby187/lib/ruby/site_ruby/1.8/exerb/recipe.rb:85:in `each'
from C:/Ruby187/lib/ruby/site_ruby/1.8/exerb/recipe.rb:85:in `create_archive'
from C:/Ruby187/bin/exerb.bat:67:in `main'
from C:/Ruby187/bin/exerb.bat:196

所以找不到win32/api.so。当我查看 C:/Ruby187/lib/ruby/site_ruby/1.8/exerb/recipe.rb 时,gems 似乎不在搜索路径中:

DIR: C:/Users/jonathan/dev/Citation
DIR: C:/Ruby187/lib/ruby/site_ruby/1.8
DIR: C:/Ruby187/lib/ruby/site_ruby/1.8/i386-msvcrt
DIR: C:/Ruby187/lib/ruby/site_ruby
DIR: C:/Ruby187/lib/ruby/vendor_ruby/1.8
DIR: C:/Ruby187/lib/ruby/vendor_ruby/1.8/i386-msvcrt
DIR: C:/Ruby187/lib/ruby/vendor_ruby
DIR: C:/Ruby187/lib/ruby/1.8
DIR: C:/Ruby187/lib/ruby/1.8/i386-mingw32
DIR: .

所以在仔细研究之后我发现你可以像这样在 exy 文件中添加搜索路径:

path:
- C:/Ruby187/lib/ruby/gems/
- C:/Ruby187/lib/ruby/gems/1.8
- C:/Ruby187/lib/ruby/gems/1.8/gems

在此之后它确实在 search_path 中显示了这些路径,但它仍然给我同样的错误。显然必须有一些方法可以让 ruby​​gems 路径包含在 exy 中?

那么,如今有人如何在 Windows 上构建 .exe 文件?

我在 Exerb 方面取得了一些进展,我发现您可以使用 -rrubygems 选项运行 mkexy 来引入它。这对大多数 ruby​​ 项目都非常有效。我已经尝试了一些 ruby​​ 脚本,这些脚本使用了许多不同的库而没有问题。例如:

mkexy -rrubygems test.rb
exerb test.exy
test.exe === WORKS!

不幸的是,它不适用于 watir。当我运行一个用 watir 构建的 .exe 时,我得到以下信息:

s4t-utils/claims.rb:24:in `user_is_bewildered': Error in the default values: :br

owser 的值必须是 'safari'、'firefox' 或 'ie' 之一,并且 '' 看起来不像 r对了。 (标准错误)

最佳答案

关于ruby - 将ruby脚本编译成exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com