pmq20/ruby-packer

Build an .exe file Failed on windows

samuelintheforest opened this issue ยท 2 comments

Hello!

I've just installed ruby-packer on windows (With all tools including perl, nasm, ruby, rubyc.exe, SquashFS Tools and I set all environment variables). Unfortunately, when I wanted to build an executable from a simple ruby test script, I got this error:

Ruby Packer (rubyc) v2.7.1a
- entrance: C:/Users/keres/Documents/SamuFiles/Programing/Ruby/poly/draw_polygon.rb
- options: {:debug=>true, :output=>"C:/Users/keres/Documents/SamuFiles/Programing/Ruby/poly/a.exe", :tmpdir=>"C:/Users/keres/AppData/Local/Temp/rubyc", :openssl_dir=>"/usr/local/etc/openssl/"}

-> rm -rf C:/Users/keres/AppData/Local/Temp/rubyc
-> rm -rf C:/Users/keres/AppData/Local/Temp/rubyc/build_pass2
-> mkdir -p C:/Users/keres/AppData/Local/Temp/rubyc
-> mkdir -p C:/Users/keres/AppData/Local/Temp/rubyc/build_pass1
-> mkdir -p C:/Users/keres/AppData/Local/Temp/rubyc/build_pass2
-> mkdir -p C:/Users/keres/AppData/Local/Temp/rubyc/rubyc_work_dir_dummy
-> cp -r "/__enclose_io_memfs__/local/ruby" "C:/Users/keres/AppData/Local/Temp/rubyc/ruby-2.7.1a"
/__enclose_io_memfs__/local/lib/compiler/utils.rb:93: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:463: warning: The called method `cp_r' is defined here
Traceback (most recent call last):
        28: from /__enclose_io_memfs__/local/bin/rubyc:140:in `<main>'
        27: from /__enclose_io_memfs__/local/lib/compiler.rb:192:in `run!'
        26: from /__enclose_io_memfs__/local/lib/compiler.rb:503:in `copy_ruby_source'
        25: from /__enclose_io_memfs__/local/lib/compiler/utils.rb:93:in `cp_r'
        24: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:467:in `cp_r'
        23: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1586:in `fu_each_src_dest'
        22: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1604:in `fu_each_src_dest0'
        21: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1588:in `block in fu_each_src_dest'
        20: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:468:in `block in cp_r'
        19: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:494:in `copy_entry'
        18: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
        17: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `each'
        16: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1515:in `block in wrap_traverse'
        15: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
        14: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `each'
        13: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1515:in `block in wrap_traverse'
        12: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
        11: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `each'
        10: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1515:in `block in wrap_traverse'
         9: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
         8: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `each'
         7: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1515:in `block in wrap_traverse'
         6: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
         5: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `each'
         4: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1515:in `block in wrap_traverse'
         3: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1514:in `wrap_traverse'
         2: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1296:in `entries'
         1: from /__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1296:in `children'
/__enclose_io_memfs__/lib/ruby/2.7.0/fileutils.rb:1296:in `open': No such file or directory @ dir_initialize - /__enclose_io_memfs__/local/ruby/spec/ruby/fixtures/code/a (Errno::ENOENT)

I have no Idea what this meant to be. I have already checked this issue page but with no luck.., everyone ran into a different problem :D. I would be glad for any help.

Thanks in advance,
Samuel

pmq20 commented

@kersmu Hi Samuel, thanks for reporting! I have successfully reproduced the issue. I'm working on a fix.

Thank you! I tested it out and my test program worked.:

print 'Hello! please give me a value: '

x = gets.chomp().to_i()

puts

x = (x * 10)

puts "Value * 10 is: #{x}"
puts
print ' ---- press anything ---- '
gets.chomp

Here is an image:
example