GCC = GNU C Compiler



1. 주요 옵션

 -g

 디버깅 정보를 포함하여 출력 파일 생성

 -W

 합법적이지만 모호한 코딩에 대해 경고 메시지 출력

 -Wall

 모든 모호한 코딩에 대해 경고 메시지 출력

 -O2

 최적화 수준2 (-O0, -O1, -O3 가능)

 -o  [파일이름]

 출력 실행파일 이름 지정 (옵션이 없으면 a.out으로 생성)


2. 출력 제어 옵션

 -E

 전처리 결과를 화면에 출력

 -S

 컴파일만 수행, *.s 파일 생성

 -c

 컴파일과 어셈블만 수행, *.o 파일 생성

 -v

 컴파일 과정과 각 명령어와 gcc 버전 정보 표시

 -save-temps

 컴파일 중간 파일 생성 (*.i, *.s)



3. 전처리 옵션

-D<Macro>[=value]

 상수 선언(#define), 선택적 컴파일이나 외부 상수 선언에 사용

 -I<dir>

헤더 파일의 검색 경로 추가


4. 최적화 옵션

 -O<숫자>

 숫자가 클수록 최적화 수준 높음

 프로그램의 실행 시간과 크기를 줄이는 최적화

 컴파일 시간이 증가하고, 안전성에 문제 가능성 있음.

 -Os

 프로그램 크기를 줄이는 최적화

 -march=<CPU>

 특정 CPU에 최적화된 코드 생성



5. 링킹 옵션

 -l<library>

 링킹 라이브러리 지정

 -L<dir>

 라이브러리 검색 경로 추가

 -static

 정적 라이브러리로 링킹 수행

 디버깅 시 라이브러리 함수 디스어셈 가능



6. 기타 옵션

-m32

 i386의 32비트 아키텍처로 컴파일

 -M, -MM

소스 파일 종속성 정보 표시 (makefile에 사용)

  -z execstack

 스택에 실행권한을 설정 ( DEP 해제 )


예시)

gcc -g -W Wall -O2 -o output file1.c file2.c

file1.c, file2.c 를 컴파일하고 링크하여 출력

실행파일 output 생성

소스 파일 중에 반드시 하나의 main() 함수가 있어야 한다.

'Note' 카테고리의 다른 글

GDB 사용법  (0) 2018.06.29
make 사용법 (+Makefile)  (0) 2018.06.29
git 명령어 & Bitbucket 사용하기  (0) 2018.06.27
Domain Name System - DNS와 네임서버  (0) 2017.06.20
운영체제별 개행문자(줄바꿈문자)  (0) 2017.06.20

+ Recent posts