106 – GCC 옵션 (요약)

gcc에 대해서는 솔직히 다 다루는 거 자체는 무리다. 진짜다. 그래서 정말 자주 사용하는 옵션, 라이브러리 지정 옵션, 디버깅 옵션, 최적화 옵션 등에 대해서만 다루더라도 엄청나게 많아지는데, 그 중에서도 좀 갈려서 다뤄야 할 거 같아서 내용을 쪼개고 옵션들을 하나하나 천천히 살펴보았다.

그래서 몇 단위로 하려는 옵션들을 아래와 같이 쭉 한번 요약해보았다. 옵션에 대한 간단한 설명이나 특수한 설명들은 다음 글에서 조금씩 다뤄보기로 하겠다. 당장 이것만 봐선 일단 이런 옵션들이 많이 쓰인다고만 알아두면 된다.

  • 옵션 | 의미
  • -E | 전처리를 실행하고 컴파일을 중단한다.
  • -c | 소스 파일을 컴파일만 하고 링크를 수행하지 않는다. 오브젝트 파일이 생성된다.
  • -o | 바이너리 형식의 출력 파일 이름을 지정한다. 지정하지 않으면 기본 출력인 a.out이 적용되어 결과물이 만들어진다.
  • -I | 헤더 파일을 검색하는 디렉토리 목록을 추가한다.
  • -L | 라이브러리 파일을 검색하는 디렉토리 목록을 추가한다.
  • -l | 라이브러리 파일을 컴파일 시 링크한다.
  • -g | 바이너리 파일에 표준 디버깅 정보를 포함시킨다.
  • -ggdb | 바이너리 파일에 GNU 디버거인 gdb만이 이해할 수 있는 디버깅 정보를 포함시킨다.
  • -O | 컴파일 코드를 최적화시킨다.
  • -ON | 최적화 N단계를 지정한다.
  • -DFOO=RAR | 명령라인에서 RAR의 값을 가지는 FOO라는 선행 처리기 매크로를 정의한다.
  • -static | 정적 라이브러리에 링크한다.
  • -ansi | 표준과 충돌하는 GNU 확장안을 취소하며, ANSI/ISO C 표준을 지원한다. 이 옵션은 ANSI 호환 코드를 보장하지 않는다.
  • -traditional | 과거 스타일의 함수 정의 형식과 같이 전통적인 K&R C 언어 형식을 지원한다.
  • -MM | make 호환 의존성 목록을 출력한다.
  • -V | 컴파일의 각 단계에서 사용되는 명령을 보여준다.