I am trying to set up my Fedora Core 4 box to run an XSUB I developed that serves as an SQL interface to the mdbtools libraries. This works on my old FC2 machine fine, but when I try to install it here the "perl Makefile.PL" complains about not being able to find the libraries needed. Makefile.PL looks like:
use 5.008003; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'MdbSQL', VERSION_FROM => 'lib/MdbSQL.pm', # finds $VERSION PREREQ_PM => {}, # e.g., Module::Name => 1.1 ($] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => 'lib/MdbSQL.pm', # retrieve abstract from mod +ule AUTHOR => 'Jon Dixon <dixonj@localdomain>') : ()), # LIBS => ['-L/usr/local/lib ', `pkg-config --libs gli +b-2.0 `, '-L/usr/lib '], # e.g., '-lm' LIBS => ['-L/usr/local/lib ', '-lmdb -lmdbsql ', `pkg +-config --libs glib-2.0 `, '-L/usr/lib '], # e.g., '-lm' DEFINE => '', # e.g., '-DHAVE_SOMETHING' INC => '-I. -I/usr/local/include ' . `pkg-config --c +flags glib-2.0 `, # e.g., '-I. -I/usr/include/other' # Un-comment this if you add C files to link with later: # OBJECT => '$(O_FILES)', # link all the C files too ); if (eval {require ExtUtils::Constant; 1}) { # If you edit these definitions to change the constants used by this + module, # you will need to use the generated const-c.inc and const-xs.inc # files to replace their "fallback" counterparts before distributing + your # changes. my @names = (qw()); ExtUtils::Constant::WriteConstants( NAME => 'MdbSQL', NAMES => \@names, DEFAULT_TYPE => 'IV', C_FILE => 'const-c.inc', XS_FILE => 'const-xs.inc', ); } else { use File::Copy; use File::Spec; foreach my $file ('const-c.inc', 'const-xs.inc') { my $fallback = File::Spec->catfile('fallback', $file); copy ($fallback, $file) or die "Can't copy $fallback to $file: $!" +; } }
Running this gives:
Note (probably harmless): No library found for -lmdb Note (probably harmless): No library found for -lmdbsql Writing Makefile for MdbSQL
The libmdb.so and libmdbsql.so libraries are installed in /usr/local/lib, with header files in /usr/local/include. If I go in and try to manually add the -lmdb and -lmdbsql on EXTRALIBS and LDLOADLIBS in the Makefile, the "make" process works fine but I get an error in "make test" as soon as it tries to load a function from the libmdbsql.so.

Anyone have suggestions for what is needed to allow Makefile.PL to be able to find the proper libraries?

Thanks, Jon


In reply to Library path for XSUB by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.