I'm confused by this, I can't see any reason for Ocra to fail in
building a one-line script.
I've tried disabling all antiviral and active-scan related programs and
reinstalling Ocra to no avail.
The error message really doesn't give me anything to go on as far as I
can see.
Script content:
puts 'Hi'
Ocra build result:
···
______________________________________________________________
ruby 1.9.3p327 (2012-11-10) [i386-mingw32]
C:\Users\Centrex\Desktop>ocra C:\Users\Centrex\Desktop\test.rb
=== Loading script to check dependencies
Hi
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:467: Use
RbConfig instead of obsolete and deprecated Config.
=== Including 52 encoding support files (2831360 bytes, use --no-enc to
exclude)
=== Building test.exe
=== Adding user-supplied source files
=== Adding ruby executable ruby.exe
=== Adding detected DLL C:/Ruby193/bin/libyaml-0-2.dll
=== Adding detected DLL C:/Ruby193/bin/zlib1.dll
=== Adding detected DLL C:/Ruby193/bin/libffi-6.dll
=== Adding library files
=== Compressing 6529206 bytes
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:1003:in `block
in initialize': unhandled exception
from
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:983:in `open'
from
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:983:in
`initialize'
from
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:822:in `new'
from
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:822:in
`build_exe'
from
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:1138:in `block
in <top (required)>'
______________________________________________________________
Aha, I've cracked it. I previously redirected the command prompt to my
most commonly used path via a registry entry called Autorun. Since
that's worked on every other computer I've used without a hitch I didn't
even think of it until I noticed Ocra's pathing code. That must have
been affecting the build process because now that I've disabled that key
value, everything works fine.
I guess the moral is: Playing with the registry may have unforeseen
consequences!
This looks as if it invokes the external compression program for LZMA,
which it probably can't find. Try to build your executable with
--disable-lzma. Note however this disables OCRA's compression
facilities and you most likely will end up with a quite large
executable.