강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

GNU Compiler Collection 4편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

GNU Compiler Collection 4<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

 

제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 개발팀

 

SULINUX 홈페이지 : www.sulinux.net

리눅스포털 홈페이지 : www.superuser.co.kr


1. 전처리기 조절

 

GCC에서 명령행 옵션을 이용하여 전처리기 조절

          -  -E 옵션을 이용하여 전처리 과정이 끝나면 컴파일을 멈출 수 있음

          -  전처리기 옵션

              o  -Dname         : 전처리기 매크로 name의 값을 1로 정의

              o  -Dname=def   : 전처리기 매크로 name의 값을 주어진 def으로 정의

              o  -Uname         : 전처리기 매크로 name의 정의를 삭제

              o  -undef           : 공용,표준 매크로를 제외하고 다른 모든 시스템과

관련된 매크로정의삭제

 

     예 제

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

2. 디렉토리 검색 경로 수정

 

   디렉토리 검색 경로 조작 옵션


      예제

$ gcc /usr/local/libxml12 -I- -I /usr/local/include/netdev fibonacci.c

#include ibxml12/xmlpos.h

#include <netdev/devname.h>

#include <libxml12/xmlpos.h>

#include <netdev/devname.h>

 

 

  - I 옵션의 기본동작 : 해당 경로의 시스템 헤더와 사용헤더를 모두 찾음

           -I- 앞의 뻀옵션 :해당 경로의 사용헤더만 모두 찾음

           -I- 뒤의 뻀옵션 : 해당 경로의 시스템 헤더와 사용헤더를 모두 찾음

 

 

3. 링커 조작

 

    링커 조작 옵션

 

    예 제

       - 오브젝트 코드로 컴파일

                           $ gcc -c calc_fib.c

                $ gcc -c fibonacci.c

 

      - 오브젝트 파일을 최종 바이너리 파일로 링크

                  $ gcc fibonacci.o calc_fib.o - fibonacci     

 

      - 바이러니 파일삭제

                  $ rm fibonacci

 

      - 오브젝트 파일로 아카이브 파일 생성

                  $ ar rcs libcalc_fib.a calc_fib.o

 

      - 오브젝트 파일과  아카이브 파일 링크

                  $ gcc fibonacci.o -o fibonacci -L . -Icalc_fib

 

4. 어셈블러 옵션 전달 옵션

GCC에서는 무시되고 어셈블러에게 직접옵션전달 가능

      - Wa,opt   : 여러 개가 opt옵션을 쉼표로 구분해서 지정

 

5. error 메시지 on/off

    경고는 잠재적인 에러가 될 수 있다.

       - GCC가 출력하는 경고의 개수와 종류를 조절하는 옵션

       - 언어의 기능에 영향을 미치는 언어에 관련된 옵선

 

자주 사용되는 옵션 설명

      -   -pedantic : ISO 표준에 요구되는 모든 경고를 출력

                      ISO C프로그램을 엄격하게 만족하는지 확인하기 위한 목적으로

사용 금물

                      불필요한 코드를 찾기, GNU 확장기능 off, traditional C 제거

 하기위해 사용

 

      -   -Wformat : printf() 함수 계열에 입력된 인자에 대해 주어진 형식과

맞지 않을 때 경고

      -   -Wformat : printf() 함수 계열에 입력된 인자에 대해 잠재적인 보안 문제 경고

      -   -Werror : 경고 오류로 바꾸어 컴파일을 중단시킴

      -   -Wunsed : Wunsed 류의 옵션을 모두 켬

          -Wunsed-function :  선언은 되었지만 정의되지 않은 함수에 대해 경고

          -Wunsed-label :  선언은 되었지만 사용되지 않은 레이블에 대해 경고

          -Wunsed-parameter : 선언은 되었지만 사용되지 않은 함수 매개변수에

대해 경고

          -Wunsed-value : 사용되지 않은 계산 결과에 대해 경고 출력

          -Wunsed-variable :  선언되었지만 사용되지 않은 변수에 대해 경고

4. 디버깅 정보 추가

 

GCC는 사용자의 디버깅을 돕기위한 여러가지 옵션을 제공

          -g, -ggdb : 디버깅 정보를 실행 파일에 포함 시킴

          -a, -ax     : 프로파일링 정보를 표시 (GCC 3.x 버전 이상에서는 삭제)

         

코드를 프로파일링 하거나 컴파일러 자체를 디버깅할 때 유용한 옵션

          -fprofile-arce : 프로그램이 실행하는 동안 어떤 실행경로가 얼마나 자주

불리는지 기록한 덤프파일을 기록하는 프로그램 삽입.

                          소스파일 이름에 .du를 추가한 파일이 생성

          -ftest-coverage : 커버리지 테스트프로그램인 gcov에서 사용하는 데이터를생성

          -p  : prof에서 사용하는 프로팡리링 정보를 덤프하는 추가적인 코드 생성

          -pg : gprof 에서 사용하는 프로팡리링 정보를 덤프하는 추가적인 코드 생성

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,807 개
  • 현재 접속자 :  151 명