What is CPP's real default include path?

Mel fbsd.questions at rachie.is-a-geek.net
Mon May 5 19:00:39 UTC 2008


On Monday 05 May 2008 20:42:23 Walt Pawley wrote:
> At 12:06 PM +0200 5/5/08, Mel wrote:
> >On Monday 05 May 2008 10:12:05 Walt Pawley wrote:
> >> I've been fiddling with compiling nzbget-0.4.0 on a 6.3 system.
> >> My initial efforts failed the configuration process for not
> >> finding iconv.h. This, despite /usr/local/include/iconv.h being
> >> present and supposedly in the include search path if the info
> >> documentation can be believed.
> >>
> >> Just to see if I could learn something, I copied the
> >> /usr/local/include/iconv.h to /usr/include/ and tried again.
> >> After this, the configuration process completed and the
> >> application seemed to "make" and "make install" just fine.
> >>
> >> Is there some way to ascertain what the set of default include
> >> paths actually is?
> >
> >Even though cc has a million options, there's none that I know that prints
> > the system include path (not even in -dumpspecs). However, in practice
> > you can assume it's /usr/include.
> >
> >To make configure scripts believe you have something installed, it's not a
> >good idea to copy headers.
> >Look for a --with-iconv=/usr/local option and failing that, change CFLAGS
> > and LDFLAGS in the environment when configuring.
>
> Admonition understood - I was just experimenting and wanted the
> file to be in a specific place without any uncertainty about
> just what various "look over there" options actually do. The
> reason for such a mind set is that actual behavior of cpp seems
> to differ from its documentation, to wit:
>
>   info cpp :: Header Files::Search Path reads:

FreeBSD uses a modified version of GCC. Info files haven't been updated to 
reflect that.

>   GCC looks in several different places for headers.  On a normal Unix
>   system, if you do not instruct it otherwise, it will look for headers
>   requested with `#include <FILE>' in:
>
>      /usr/local/include

Nope.

>      LIBDIR/gcc/TARGET/VERSION/include
>      /usr/TARGET/include

No idea really.

>      /usr/include
Yep.

-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.


More information about the freebsd-questions mailing list