Subject: Re: failure to load shared libraries
To: Steve Blinkhorn <steve@prd.co.uk>
From: Juan RP <juan@xtraeme.nopcode.org>
List: port-i386
Date: 03/22/2005 18:48:23
On Tue, 22 Mar 2005 17:43:55 +0000 (GMT/BST)
Steve Blinkhorn <steve@prd.co.uk> wrote:
> I see this topic over and over again, but many of the replies are
> gnomic.
>
> I am running stock 2.0. Attempting to build a 3rd-party package, I
> get the error message:
>
> couldn't load file "libtk84.so": libtk84.so: Undefined PLT symbol
> "XFreePixmap" (symnum = 16)
>
> (I have stripped the path off the filenames as it gives away details
> of one of my machines).
>
> when the required file is present in the same directory as I am doing
> the build. If I copy it to somewhere like /usr/lib, the message
> changes to one indicating that an X11 library could not be found. I
> had the same problem under 1.6.2, and heard that it was fixed in 2.0,
> something to do with ld-elf.so.
>
> Does anyone know whether there is something to do with configuration
> going on here, i.e. is there a stock environment variable that needs
> setting, or some standard flag that needs setting in Makefiles? I
> take it that the search list for shared libraries is what is at issue,
> but the man pages warn against using ld.so.conf for this purpose.
You have to pass the rpath dir to the compilation flags:
-Wl,-R/foo/bar
Another way (which is not the recommended one), would be using
the env var LD_LIBRARY_PATH, please pass the rpath flag in the compilation
stage if you want to fix this properly.
Cheers.