Asking gcc for the include directory location?

Toralf Lund
Thu Dec 7 14:25:00 GMT 2006

Dave Korn wrote:
> On 07 December 2006 12:36, Mike Frysinger wrote:
>> On Thursday 07 December 2006 03:36, Toralf Lund wrote:
>>> Is there any way I can get gcc to tell me where the "normal" include
>>> directory is located? I mean, for my system's native compiler, this
>>> directory is "/usr/include", while on e.g. my arm-coff cross-gcc, it's
>>> "/usr/arm-coff/include". Is there any way to ask the compilers to print
>>> out these values? If not, how about the full "built-in" include path?
>> if you run `echo "" | cpp -v` it'll tell you the include search paths ...
>> not sure how to get that in an easier format though
>> -mike
>   Sorry, I've been following this thread but I just don't follow :)  Why are
> we asking the preprocessor about include paths?  Only the compiler knows.
Well I wanted to use gcc or possibly g++ myself, but then someone said 
that it couldn't be done, and I had to use cpp instead...
> After all it's language dependent; the output from "gcc -v" shows the include
> paths for C, the output from "g++ -v" shows the include paths for C++.  If
> your problem is how to find the standard system include dir, this seems to
> work for me:
> gcc -v -E - </dev/null >/dev/null -isystem LOOK_HERE_FOR_SYSTEM_DIR |
> grep -A1 LOOK_HERE_FOR_SYSTEM_DIR | tail -1
Anyhow, I must admin that I had overlooked the fact that gcc -v when 
used in combination with -E, will also include the search path (and not 
just version/configure info and program names.)

So you're method might work at least in principle. The actual commands 
presented here don't quite work for me, but I suspect this is due to a 
minor issue with the grep options or I/O redirections. (I get the full 
output from gcc -v, not just a directory line.)


- Toralf

For unsubscribe information see

More information about the crossgcc mailing list