我无法从Ruby脚本创建EXE文件。
require 'socket'
class Server
def initialize(ip, port)
@server = TCPServer.open(ip, port)
@clients = Array.new
run
end
def run
loop {
Thread.start(@server.accept) do |client|
@clients << client
client.puts 'Connection established'
listen_user_messages(client)
end
}.join
end
def listen_user_messages(client)
loop {
msg = client.gets.chomp
@clients.each do |other_client|
if other_client != client
other_client.puts "#{msg}"
end
end
}
end
end
Server.new('localhost', 19937)
我正在尝试运行以下命令:
ocra server.rb
但它冻结了消息
===加载脚本以检查依赖关系
我也尝试过使用exerb:
ruby exerb server.rb
它构建了一个exe文件,但我无法使用它:
server.rb:1:在`require'中:没有要加载的文件 - socket(LoadError) 来自server.rb:1
答案 0 :(得分:3)
require 'socket'
require 'rubygems'
exit if Object.const_defined?(:Ocra) #allow ocra to create an exe without executing the entire script
将以上内容添加到您的脚本中,这应该允许它生成。 如果你不包含'rubygems'
,Ocra有时看不到红宝石和其他文件