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

Re: ld problem



> Hi All,

Hi!

>  I just installed latest Debian. Linker ld is not able to find libX11:
> 
> damani@damani-pc:/tmp/binutils-2.15/ld$ ld -lX11
> ld: cannot find -lX11

That's ok - ld only searches some standard directories for libraries,
and /usr/X11R6/lib isn't one of them. Here's a (probably non-represen-
tative) list of checked directories on my system (strace output, but you
can see the locations it tries):

open("/usr/bin/../lib/libX11.so", O_RDONLY) = -1 ENOENT
open("/usr/bin/../lib/libX11.a", O_RDONLY) = -1 ENOENT
open("/usr/i386-linux/lib/libX11.so", O_RDONLY) = -1 ENOENT
open("/usr/i386-linux/lib/libX11.a", O_RDONLY) = -1 ENOENT
open("/usr/local/lib/libX11.so", O_RDONLY) = -1 ENOENT
open("/usr/local/lib/libX11.a", O_RDONLY) = -1 ENOENT
open("/lib/libX11.so", O_RDONLY)        = -1 ENOENT
open("/lib/libX11.a", O_RDONLY)         = -1 ENOENT
open("/usr/lib/libX11.so", O_RDONLY)    = -1 ENOENT
open("/usr/lib/libX11.a", O_RDONLY)     = -1 ENOENT

So, you'll have to specify -L/usr/X11R6/lib explicitly when linking
against X libraries.

> damani@damani-pc:/tmp/binutils-2.15/ld$ ld -lproc
> ld: cannot find -lproc
> 
> All these libs are present in /etc/ld.so.cache :
> 
> damani@damani-pc:/tmp/binutils-2.15/ld$ ldconfig -p | grep libX11
>         libX11.so.6 (libc6) => /usr/X11R6/lib/libX11.so.6
>         libX11.so (libc6) => /usr/X11R6/lib/libX11.so
> damani@damani-pc:/tmp/binutils-2.15/ld$ ldconfig -p | grep proc
>         libproc-3.2.5.so (libc6) => /lib/libproc-3.2.5.so

Heh, pay close attention to the library name (took me 10 minutes to see it,
too ;-) ): The dash doesn't end the name...

jcn@hejre:~$ ld -lproc-3.2.5
ld: warning: cannot find entry symbol _start; not setting start address

Found. :-)


Regards,

Jan
-- 
Jan C. Nordholz
<jckn At gmx net>

Attachment: signature.asc
Description: Digital signature


Reply to: