Hmmm, I guess I just assumed that since ldconfig had cached the absolute
path to the library, ld would not need to know the library path as well,
but for some reason it did.

What ultimately fixed the problem was hardcoding the -L /usr/local/lib
in the configure script, since it refused to pick up that directory any
other way.

Thanks for your help.  As a point of curiosity, I'd still like to know
why ld would still need the -L /usr/local/lib if the full path to the
library is already in the cache?
-- 
Justin Hopper
[EMAIL PROTECTED]
UNIX Systems Engineer
http://www.spry.com
--- Begin Message ---
> This may be a very simple fix, but so far I've found no solution.  Just
> installed expat-1.95.5 in a FreeBSD 4.4 machine.  The install went fine,
> and I verified that ldconfig had picked up the library:
>
> host# ldconfig -r | grep expat
> 73:-lexpat.4 => /usr/local/lib/libexpat.so.4
>
> However, I need to install other packages that require the expat
> library, and the configuration fails stating that the expat library
> cannot be found.  In fact, just a simple test fails:
>
> host# ld -lexpat
> /usr/libexec/elf/ld: cannot find -lexpat

How about ld -L/usr/local/lib -lexpat?  Works fine here:

gabby# ld -L /usr/local/lib -lexpat
/usr/libexec/elf/ld: warning: cannot find entry symbol _start; not setting
start address
/usr/local/lib/libexpat.so: undefined reference to `memmove'
/usr/local/lib/libexpat.so: undefined reference to `memcpy'
/usr/local/lib/libexpat.so: undefined reference to `malloc'
/usr/local/lib/libexpat.so: undefined reference to `realloc'
/usr/local/lib/libexpat.so: undefined reference to `memset'
/usr/local/lib/libexpat.so: undefined reference to `free'
gabby#

If some programs can't find it, it's probably because /usr/local/lib isn't
in their search path.

--
Matt Emmerton

--- End Message ---

Reply via email to