
adbrown
New User
Mar 24, 2009, 10:50 AM
Post #1 of 1
(381 views)
|
|
Dynaloader issues
|
Can't Post
|
|
Hi - Overview: I'm trying to use a CPAN module - Math::Geometry::Planar::GPC::Polygon - which basically consists of a perl wrapper around a C library. I can run Make without any problem, and it appears to install the shared- object library in the correct directory (I'm using Linux). However, DynaLoader isn't letting me link to it. I successfully used this module a year and and a half ago, and I remember I had to do something funky to get it to work - but I can't remember for the life of me. The dirty details: I've got the following modules installed on my machine that I know are needed with this:
Inline-0.44_02 ExtUtils::MakeMaker-6.44_01 After "tar xvf" the contents of the tar file, I run the following commands:
perl Makefile.PL // Generate the makefile make // make the shared object library So far so good - no apparent error messages. If I run at this point, I get:
Had problems bootstrapping Inline module 'Math::Geometry::Planar::GPC::Polygon' Can't load 'blib/arch/auto/Math/Geometry/Planar/GPC/Polygon/Polygon.so' for module Math::Geometry::Planar::GPC::Polygon: blib/arch/auto/Math/Geometry/Planar/GPC/Polygon/Polygon.so: cannot open shared object file: No such file or directory at /home/y/lib/perl5/5.8/i686-linux-64int/DynaLoader.pm line 230. at /home/y/lib/perl5/site_perl/5.8/Inline.pm line 512 at blib/lib/Math/Geometry/Planar/GPC/Polygon.pm line 32 If I try to permanently install this library: It seems to do the right thing; however gets a similar message:
1..25 Had problems bootstrapping Inline module 'Math::Geometry::Planar::GPC::Polygon' Can't load '/home/y/lib/perl5/site_perl/5.8/i686-linux-64int/auto/Math/Geometry/Planar/GPC/Polygon/Polygon.so' for module Math::Geometry::Planar::GPC::Polygon: /home/y/lib/perl5/site_perl/5.8/i686-linux-64int/auto/Math/Geometry/Planar/GPC/Polygon/Polygon.so: cannot open shared object file: No such file or directory at /home/y/lib/perl5/5.8/i686-linux-64int/DynaLoader.pm line 230. at /home/y/lib/perl5/site_perl/5.8/Inline.pm line 512 (etc. ...) The shared object library *is* in the proper directory
ls -l /home/y/lib/perl5/site_perl/5.8/i686-linux-64int/auto/Math/Geometry/Planar/GPC/Polygon/ Total 48 -r--r--r-- 1 root root 0 Feb 26 16:47 Polygon.bs -r-xr-xr-x 1 root root 45169 Mar 23 19:00 Polygon.so I read that this is not a problem with DynaLoader, but that the *.xs file - the binding - is probably incorrect. But I can't find any *.xs files. I don't have much experience binding compiled code to perl, so I don't know what the implications are. -Alan
|