### 10.3 Verbose compilation ¶

The `-v` option can also be used to display detailed information about the exact sequence of commands used to compile and link a program. Here is an example which shows the verbose compilation of the Hello World program:

    $ gcc -v -Wall hello.c
    Reading specs from /usr/lib/gcc-lib/i686/3.3.1/specs
    Configured with: ../configure --prefix=/usr
    Thread model: posix
    gcc version 3.3.1
     /usr/lib/gcc-lib/i686/3.3.1/cc1 -quiet -v -D__GNUC__=3
     -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=1
     hello.c -quiet -dumpbase hello.c -auxbase hello -Wall
     -version -o /tmp/cceCee26.s
    GNU C version 3.3.1 (i686-pc-linux-gnu)
     compiled by GNU C version 3.3.1 (i686-pc-linux-gnu)
    GGC heuristics: --param ggc-min-expand=51
     --param ggc-min-heapsize=40036
    ignoring nonexistent directory "/usr/i686/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/local/include
     /usr/include
     /usr/lib/gcc-lib/i686/3.3.1/include
     /usr/include
    End of search list.
     as -V -Qy -o /tmp/ccQynbTm.o /tmp/cceCee26.s
    GNU assembler version 2.12.90.0.1 (i386-linux)
    using BFD version 2.12.90.0.1 20020307 Debian/GNU
    Linux
    /usr/lib/gcc-lib/i686/3.3.1/collect2
     --eh-frame-hdr -m elf_i386 -dynamic-linker
     /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o
     /usr/lib/gcc-lib/i686/3.3.1/crtbegin.o
     -L/usr/lib/gcc-lib/i686/3.3.1
     -L/usr/lib/gcc-lib/i686/3.3.1/../../.. /tmp/ccQynbTm.o
     -lgcc -lgcc_eh -lc -lgcc -lgcc_eh
     /usr/lib/gcc-lib/i686/3.3.1/crtend.o
     /usr/lib/crtn.o

The output produced by `-v` can be useful whenever there is a problem with the compilation process itself. It displays the full directory paths used to search for header files and libraries, the predefined preprocessor symbols, and the object files and libraries used for linking.