OS/Linux Linux gcc 컴파일 과정 및 옵션
  • 728x90
    반응형

     



    Linux gcc 컴파일 과정 및 옵션

    for WOWLinux



      

    gcc 컴파일 과정



    main 이라는 파일을 예로 들때  main.c  main.i  main.s (여기까지는 text형) →main.o → main (binary형) 

     

    gcc –o main main.c 로 컴파일하면 실행파일만 생성하고 위 중간과정 파일은 자동 생략된다. 


    gcc –v –save-temps –o main main.c


     –v  옵션 : 컴파일되는 과정을 화면으로 출력한다.


     --save -temps  옵션 : 컴파일 과정에서 발생되는 중간 파일을 지우지 않고 저장한다.

     

    gcc -E -o main.i main.c (전처리 단계)


    main.c 소스코드를 전처리 해서 main.i 에 저장.


    gcc -S -o main.s main.c (어셈블리 파일 단계)


    main.c 소스코드를 컴파일해서 main.s 어셈블리어 소스를 저장.


    gcc -c -o main.o main.c (오브젝트 파일 단계)


    main.c 소스코드를 컴파일해서 링크 전 단계인 오브젝트 파일 main.o 생성


    Tip : Dos 에서의 오브젝트 파일생성 옵션 명령


    cl /c main.c


     

    gcc 컴파일의 main.s 파일 내부의 main 함수의 시작




    결과 : 11번째 줄의 main : 이 함수의 시작부분.



    cl 컴파일의 main.asm 파일 내부의 main 함수의 시작



     

    결과 : 28번째줄의 _main    PROC NEAR 이 함수의 시작 부분

     

     위의 두 결과를 보고 어셈블리 파일은 컴파일러의 종류에따라 각각 문법이 다르다는 것을 알수있다.

     

     

     

     


     

     

     

     

    728x90
    반응형
상단으로