gcc는 내부적으로 아래 명령어를 호출하여 컴파일한다. gcc 옵션 설명이지만, 엄밀히 말하면 아래 단계별 명령어의 옵션이라 볼 수 있다.
- 전처리기 : cpp0 또는 cc1 -E
- C 컴파일러 : cc1
- 어셈블러 : as
- 링커 : collect2
* GCC 옵션 - 기본
-o -c -E -S -v |
특정 파일명으로 실행 파일 생성. 설정하지 않으면 a.out 생성 됨 오브젝트 파일(.o) 생성 컴파일 대신에 전처리 결과를 stdout으로 출력함 어셈블리 파일만 생성하고 컴파일 종료(.s 파일 생성됨) verbose 모드. 컴파일의 상세한 결과를 출력함 |
[참고] -save-temps 옵션은 .i, .s, .o 확장자를 가진 중간 파일을 지우지 않고 놓아둠
* GCC 옵션 - 헤더 및 매크로
-I -D [매크로] | Header 파일(.h)을 탐색하는 디렉터리 설정. #include <>에서 사용하는 Header 파일 탐색 #define [매크로], 예를들어 -DDEBUG이면 #define DEBUG 옵션 추가 |
* GCC 옵션 - 경고 및 최적화
-ansi -std=[표준] -W -Wall -w -Werror -pedantic -On | ANSI C 표준으로 문법 체크, C언어에서는 -std=C90, C++언어에서는 -std=c++98 -std=C89/C99 등 표준 옵션 모호한 코딩에 대한 경고 출력 옵션, -Wall에서 제외한 16개 경고 메시지를 출력 모든 모호한 코딩에 대한 경고 출력 옵션 모든 경고 메시지 제거 모든 경고를 에러로 간주하고 컴파일 중단 ANSI C89 표준에서 요구하는 모든 경고 메시지 출력, -ansi와 함께 사용 최적화 n레벨 설정 (O2 최적화 권장) |
* GCC 옵션 - 디버깅
-g -pg | gdb 툴을 통해 디버깅할 수 있도록 정보 생성 프로파일을 위한 코드 삽입 |
* GCC 옵션 - 링크
-L -l -shared -static | 링크되는 라이브러리를 탐색하는 디렉터리 설정 링크할 라이브러리 지정 공유 라이브러리 우선 링크 정적 라이브러리 우선 링크 |
* GCC 옵션 - 32/64bits
-m32 -m64 | 32 비트 컴파일 64 비트 컴파일 |
'프로그래밍 언어 > C_C++' 카테고리의 다른 글
[예제] 매크로를 이용한 디버깅 예제 (0) | 2016.09.14 |
---|---|
[예제] 가변적인 인자 로깅하는 예제 - stdarg.h 함수 이용 (0) | 2016.09.14 |
[개요] C 표준 사전 정의된 매크로 (0) | 2016.06.17 |
[예제] IPC - Shared Memory 사용 예제 (0) | 2016.05.20 |
[Tips] POSIX와 표준 C라이브러리 (0) | 2016.03.23 |