GCC = GNU C Compiler
-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 |