Eu tive a vontade de passar meus programas que são interpretados em Ruby para programas executaveis, quem não sabe Ruby é uma linguagem interpretada e não precisa ser compilada para ser executada, assim como Perl ou Python, porém existe um arquivo que pode passar seus arquivos em Ruby para executaveis que é o RubyScript2Exe que pode ser encontrado em http://www.erikveen.dds.nl/rubyscript2exe/#6.0.0.
Porém ao tentar executa-lo dando
# ruby rubyscript2exe.rb testing.rb
me retornou o seguinte erro:
rubyscript2exe.rb:621:in `replace': can't modify frozen string (TypeError)
from rubyscript2exe.rb:621
from rubyscript2exe.rb:577:in `newlocation'
from rubyscript2exe.rb:505:in `newlocation'
from rubyscript2exe.rb:472:in `newlocation'
from rubyscript2exe.rb:505:in `newlocation'
from rubyscript2exe.rb:577:in `newlocation'
from rubyscript2exe.rb:619
Então procurei na internet e achei um blog que me ajudou veja o blog(ingles).
Nele diz como corrigir, e tal correção me ajudou e resolveu meu problema, veja o que deve ser feito:
Na linha 621 ou próximo, procure por
$0.replace(File.expand_path("./init.rb"))
Altere para
$_0 = File.expand_path("./init.rb")
alias $__0 $0
alias $0 $_0
Pronto salve o arquivo e tente novamente, comigo funcionou, só nao gostei do fato de um simples #print "Hello World" ter ficado com 699Kb, isso achei meio triste pacas, mas vou fazer alguns testes agora, próximo post vou falar mais sobre os erros encontrados.
Abraços
Obrigado pela dica.
ResponderExcluir