Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Feb 2005 00:06:19 -0800
From:      "Ted Mittelstaedt" <tedm@toybox.placo.com>
To:        "Kris Kennaway" <kris@obsecurity.org>, "Maicon Stihler" <mrkung@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   RE: problem with GCC search path on FreeBSD5.3 AMD64
Message-ID:  <LOBBIFDAGNMAMLGJJCKNCEHIFAAA.tedm@toybox.placo.com>
In-Reply-To: <20050215213049.GA11287@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help


> -----Original Message-----
> From: owner-freebsd-questions@freebsd.org
> [mailto:owner-freebsd-questions@freebsd.org]On Behalf Of Kris Kennaway
> Sent: Tuesday, February 15, 2005 1:31 PM
> To: Maicon Stihler
> Cc: freebsd-questions@freebsd.org; Ted Mittelstaedt
> Subject: Re: problem with GCC search path on FreeBSD5.3 AMD64
> 
> 
> On Tue, Feb 15, 2005 at 03:55:00PM -0300, Maicon Stihler wrote:
> > > this isn't a gcc problem.
> > Hm, maybe I used the wrong terms to define the situation. I 
> agree that
> > its not gcc's fault, its some kind of (mis)configuration issue.
> 
> Didn't you ask this question a few weeks ago?  I certainly answered it
> then.
> 
> > > ldconfig
> > 
> > I used ldconfig to generete te hints file, and then when I do a
> > "ldconfig -r" all the libs I need appears there... the strange thing
> > is that if I try to include them in my own programs it doesnt work.
> 
> ldconfig is for the runtime linker, it's not used by gcc when linking
> object files.
> 
> > Im using the CFLAGS="-B /usr/local/lib -L/usr/local/include" as a
> > workaround, but im searching for a more elegant way to solve this
> > issue.
> 
> Those flags look completely wrong.  You want "-L /usr/local/lib -I
> /usr/local/include" - either in CFLAGS, or otherwise passed into your
> gcc commandline.
> 
> This is the correct way to address the issue.
> 

Kris, a lot of systems don't like the spaces, the more portable way
to set those flags should be:

"-L/usr/local/lib -I/usr/local/include"

And this only sets it up for linking the binary, not runtime linking.
He still needs to specify either "-R/usr/local/lib" to the linker
(ld,) to get a binary that finds it's libraries, or use one of
the other tricks (ldconfig, softlinks, etc.)

gcc -B/usr/local/lib  as near as I can tell makes gcc look for the
linker in /usr/local/lib which as you observe is completely wrong.

Ted



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?LOBBIFDAGNMAMLGJJCKNCEHIFAAA.tedm>