arbitrary build can't find libs - right way to do this?

Chuck Robey chuckr at
Tue Nov 20 19:41:45 PST 2007

Steve Franks wrote:
> On Nov 20, 2007 4:16 PM, Roland Smith <rsmith at> wrote:
>> On Tue, Nov 20, 2007 at 03:34:29PM -0700, Steve Franks wrote:
>>> I'm trying to compile a non-port application for the first time ever.
>>> The associated library built and installed just fine - I can see them
>>> right in /usr/local/lib and usr/local/include/libnamefoo.h  However,
>>> when I run ./configure for the application, it clearly can't find the
>>> libs.  So my question is, should I be changing my path, is there a
>>> standard variable I need to export, or what?  Obviously for ports this
>>> just works, so I've never had to do it.  I'm sure there's a standard
>>> way, so I thought I'd get in the habit of doing that right from the
>>> start...
>> The best way would be to write a port makefile and submit it. That way
>> you only have to figure it out once. Especially if the app needs patches
>> to work correctly on FreeBSD. And in case of a free software app, others
>> can use it as well, _and_ help you with bugfixing. :-) For closed source
>> stuff submitting a port would probably be useless.
> I'd love to (submit a port), but how do I make a port if I can't even
> get it to work the first time myself?
>     configure --includedir=/usr/local/include doesn't work;
>     export CPATH =/usr/local/include doesn't work;
>     export CPPFLAGS -l/usr/local/include doesn't work;
>     I've checked the permissions,
>     and I can see the file right there, but configure/gcc can't.  The
> developer swears something must be 'different' about freebsd because
> his gcc finds the same file in /usr/local/include.  Appears his system
> is gentoo

You don't givec me really enoough for me to go on, but I think really 
you need to know about 3 options to gcc (at least one of which you 
should be using, but you aren't)

-v = means for gcc (which is really a smallish driver program for the 
real compiler) to show all of the subprograms that it kicks off, 
including all of the parameters it uses, and specifically for you, it 
shows the entire lib and include file search path it knows aboout.
You aren't using this, so far as I can see.

The other two are options to add to the default search path.  Above, it 
seems like you are using -l to add an include file path, this is wrong, 
you should use -I, -l is to specify specific libraries to link in, not a 
path to search for the libs in.  To add a library search path, you use -L.

> Steve
> _______________________________________________
> freebsd-questions at mailing list
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at"

More information about the freebsd-questions mailing list