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
    반응형
상단으로