Linuxコンパイラgccの使用と各ステップの役割


    :gcc   

gcc     ?

   gcc                  

  :gcc-E helllo.c -o hello.i

  “E”,        gcc             ,

  “-o”      ,".i"          C    。

     #       

             ,    ,    ,    ;



  (      )

      ,gcc           ,        ,      ,gcc          。

      “-S”       ,              ,        。

         : gcc -S hello.i -o hello.s

  (          )

             “.s”        

         “-c”             “.o”         。

     :gcc -c hello.s -o hello.o

  :(           )

       ,        

      :gcc helllo.o -o hello

   :    C    ,     “printf”     ,         “stdio.h”          ,          ,  ,     “printf”    ?

      :              libc.so.6       ,        ,gcc           “/usr/lib”     ,      libc.so.6    ,        “printf” ,          。           !

    :           

                

    :        ,                   ,          ,               ,       “.a”。

        ,                          (            ),                ,         。         ".so",      libc.so.6     ,gcc           ,       ,gcc          ,    : gcc hello.o -o hello

*(                                  ,              ,                )

gcc           ,      。

gcc  :-E :      ,       ,                 。

-S:        ,        

-c:        

-o:       

-static:               

-g:       ,GNU         。

-O0, -O1, -O2, -O3           4   ,         ,         ,         

-Wall         。