japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

 
GNU Compiler Collection 4편
조회 : 8,113  


GNU Compiler Collection 4

 

 

 

제작 : 리눅스포털(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           : 공용,표준 매크로를 제외하고 다른 모든 시스템과

관련된 매크로정의삭제

 

     예 제

 

 

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 에서 사용하는 프로팡리링 정보를 덤프하는 추가적인 코드 생성

 

 

 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1453


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
이재석
본명 : 이재석
e-mail : locli앳superuser.co.kr
소속 : (주)수퍼유저코리아

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 웹개발언어
PHP
JSP
python
기타
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.