Subject: | Can't locate loadable object for module IO in @INC |
Building an executable with Strawberry Perl is successful but when
actually running it (after we have renamed the c:/strawberry to
c:/strawberryX so it cannot find the dependencies from the path), fails
with the following errors :
" Can't locate loadable object for module IO in @INC (@INC
contains: C +ODE(0xa1d31c ) C:\strawberry\perl\vendor\lib .) at
C:/strawberry/perl/site/lib/PAR/ +Heavy.pm line 103</p> Compilation
failed in require at C:/strawberry/perl/lib/IO/Handle.pm l +ine 266.
"
I am on WinXP SP3 ,PAR 1.002,PAR::Packer 1.009, and have tried
Strawberry Perl versions 5.12.3.0,5.10.1.5,5.10.1.1 and the problem
persists in all of them
perl -V reveals something strange with the backslashes:
%ENV:
PERL_JSON_BACKEND="JSON::XS"
PERL_YAML_BACKEND="YAML"
@INC: C:/strawberry/perl/lib
C:/strawberry/perl/site/lib
C:\strawberry\perl\vendor\lib .
"C:\strawberry\perl\vendor\lib" is not consistent with the other entries
I've found id 52794 which is related to the issue although it refers to
version PAR::Packer 1.001.
Nevertheless I got the following line :
if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc }
from the patch "proper-fix.patch" (the patch actually REMOVES this line)
and added it to par.pl after line 540.
I also corrected Strawberry's @INC , prepending the path
"C:/strawberry/perl/vendor/lib" by setting the PERL5LIB env variable,
rebuilt it and everything works fine and even tried it in machines that
have no Perl installation whatsoever
It looks like Strawberry has the path messed up and needs the correct
one but also must be combined with
"if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc }"