CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Intermediate:
Dynaloader issues

 



adbrown
New User

Mar 24, 2009, 10:50 AM

Post #1 of 1 (608 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:


Code
Inline-0.44_02 
ExtUtils::MakeMaker-6.44_01


After "tar xvf" the contents of the tar file, I run the following commands:


Code
perl Makefile.PL   // Generate the makefile 
make // make the shared object library


So far so good - no apparent error messages. If I run


Code
make test


at this point, I get:

Code
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:


Code
sudo make install


It seems to do the right thing; however


Code
./test.pl

gets a similar message:

Code
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


Code
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

 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives