본문 바로가기

개발관련/이것저것

컴파일 과정 ( gcc 기준 - GNU C )

     test.c ( 소스 ) -> | 전처리기 | -> test.i           // cpp0 test.c /tmp/test.i

-> test.i -> | 컴파일러 | -> test.s                       // cc1 /tmp/test.i -o /tmp/test.s

-> test.s -> | 어셈블러 | -> test.o                      // as /tmp/test.s -o /tmp/test.o

-> test.o -> | 링커 | -> test.exe ( 실행파일 )       // ld /tmp/test.o /tmp/test2.o -o test

==================================================================================

 일반적으로 소스 컴파일 할때 gcc -o test test.c 혹은 gcc test.c -o test 등을

사용 할 것이다.

 이렇게 하면 생성된 오브젝트 파일이나 어셈파일들이 tmp 디렉토리에 저장됬다가 삭제되어

나중에 활용하기가 어렵다.

 중간 산출물은 다음 명령을 이용해 얻을 수 있다.

 gcc -v -save-temps -o test test.c