[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: give me "fish" & you feed me for a day..teach me 2 fish & u feed me 4ver!



On Thu, Sep 06, 2001 at 11:16:03PM +0000, jdls@gmx.net wrote:
> Greetings,
> 
> Some questions;
> 
> 1. is there a resource out there somewhere that can clearly explain "ld" and
> "ld" related problems and how to fix them? I sometimes build from source and
> most of the time I get stuck with "ld" related problems and I have to bother
> a lot of people on how to resolve it instead of resolving it myself...

Not sure about that...
 
> it's like the saying "give them fish and you feed them for a day...teach
> them to fish and you feed them forever!"

...but, most ld problems are simply that it (the linker)
cannot find a required library file. Like as follows:

> /usr/bin/ld: cannot find -lperl

It cannot find the library file called libperl, which is
either because you don't have it installed, or because
the linker isn't looking for it in the right place. (Just
replace the -l part with lib and you will have the library
name.) The slocate package is perfect for finding out if the
lib is on your computer somewhere:

    slocate libperl

If it's not installed, you need to find which
package you need. Go to the debian packages page
(http://www.debian.org/distrib/packages) and punch in
libperl into the bottom form. Look for the library file
name, which should end in something like '.so' (hopefully it
will show up). That package is what you need... install it
and you should be good-to-go.

If you do have the library installed (which is probably the
case here... I would be suprised if you didn't have perl on
your machine) then you need to tell ld where to look. In
this case, you need to either edit the Makefiles yourself or
pass the appropriate flag to configure, like so:

    LDFLAGS=-L/location/of/lib ./configure

Run configure just like that, plus whatever other options
you want to give it. The flag is -L which is immediately
followed by the directory your lib file can be found. Again,
slocate is great for figuring that out in a hurry. This flag
must appear in the linking phase, which is usually covered
by the LDFLAGS variable.

I hope this helps.

-- 
John Patton                      patton66@home.com

"What orators lack in depth they make up for in length."
- Charles de Secondat, Baron de Montesquieu (1689-1775)



Reply to: