gcc는 처음엔 단순한 C compiler 였으나, C++, 자바, 포트란 등을 모두 컴파일 할 수 있을 정도로 범위가 커져 컴파일러 콜렉션으로 바뀌었다.

컴파일 패스: 전처리기 → 컴파일러 → 어셈블러 → 링커

gcc 는 위 과정을 모두 수행해 소스파일을 실행파일로 생성해준다.

컴파일하기

바로 실행파일 만들기

gcc hello.c

object 파일을 생략하고 바로 a.out 파일을 만들어준다.

$./a.out 으로 바로 실행시킬 수 있다.

GCC 옵션s

--help : 간단한 옵션을 출력해줍니다.

--version : gcc의 버젼을 출력해 줍니다.

-o : 출력 파일명을 지정할 때 사용합니다.

-c : 링킹 과정을 진행 하지 않고 .o 파일인 오브젝트 파일까지만 생성 하게 됩니다.

-S : 어셈블러까지 진행 하지 않고, 컴파일러까지의 출력은 .S 어셈블러 파일을 생성하게 됩니다.

-O1 ~ -O3 : 최적화 수준을 지정합니다. 숫자가 클수록 높은 수준의 최적화를 하게 됩니다.

-g : 디버깅을 위한 정보를 컴파일 하면서 생성하게 됩니다.

-D : define 을 할수 있는 옵션입니다.

-l (엘) : 라이브러리 이름을 지정합니다.

-L : 추가 라이브러리 디렉토리를 지정합니다.

-W : 모든 에러 메시지 출력

-w : 모든 에러 메시지를 출력 하지 않음

-I(아이) : 추가 헤더 파일이 있는 디렉토리를 지정합니다.