프로그래밍/C
gcc 옵션
잘 살아보세
2009. 4. 2. 14:25
gcc [options] file(s)
gcc는 위와 같은 형태로 실행시킨다. file(s)에는 컴파일하고자 하는 파일들을 쓰면 되고, options에는 이제 설명할 옵션들을 상황에 맞게 적으면 된다. 그럼 옵션에 대해 알아보자.
-c
컴파일만 한다. gcc는 위에서 말한 것처럼 소스를 컴파일한 후 링크하여 실행파일을 만드는데, 그 과정에서 오브젝트파일은 지워진다. 이 옵션을 주면 컴파일만 하고 링크는 하지 않는다. 즉 오브젝트파일이 만들어지는데 파일 끝이 .o가 된다.
-o
이 옵션으로 output파일명을 주지 않으면 a.out라는 실행파일을 만든다. 오브젝트파일을 만들 때도 이 옵션을 사용하여 이름을 줄 수 있다.
-I
프로그램내에 사용된 헤더파일이 탐색경로안에 없을 경우 이 옵션을 이용하여 수동으로 헤더파일이 있는 디렉토리를 지정해준다.
-L
링커인 ld가 라이브러리를 찾을 경로를 수동으로 지정해준다.
-l
라이브러리 탐색경로에서 줄임형식으로 라이브러리를 부를 때 사용하는 옵션이다. -lm -lX11과 같은 형식이다.(전자는 수학라이브러리, 후자는 엑스라이브러리이다.) 줄임형식을 쓰지 않고 라이브러리를 부를려면 라이브러리의 위치를 절대경로로 써주면 된다. 예를 들어 -lm의 경우 /lib/libm.so.6이라고 해주면 된다.
-s
실행파일에서 심볼테이블을 삭제한다. 그래서 실행파일 크기를 작게한다.
-O
코드최적화를 위한 코드이다. O0이면 최적화를 안한다는 뜻이고 O2이면 최대를 의미한다. O2이상은 지원되지 않는다. O9라고 써도 O2로 최적화된다.
-g
디버깅정보를 포함시킨다.
gcc는 위와 같은 형태로 실행시킨다. file(s)에는 컴파일하고자 하는 파일들을 쓰면 되고, options에는 이제 설명할 옵션들을 상황에 맞게 적으면 된다. 그럼 옵션에 대해 알아보자.
-c
컴파일만 한다. gcc는 위에서 말한 것처럼 소스를 컴파일한 후 링크하여 실행파일을 만드는데, 그 과정에서 오브젝트파일은 지워진다. 이 옵션을 주면 컴파일만 하고 링크는 하지 않는다. 즉 오브젝트파일이 만들어지는데 파일 끝이 .o가 된다.
-o
이 옵션으로 output파일명을 주지 않으면 a.out라는 실행파일을 만든다. 오브젝트파일을 만들 때도 이 옵션을 사용하여 이름을 줄 수 있다.
-I
프로그램내에 사용된 헤더파일이 탐색경로안에 없을 경우 이 옵션을 이용하여 수동으로 헤더파일이 있는 디렉토리를 지정해준다.
-L
링커인 ld가 라이브러리를 찾을 경로를 수동으로 지정해준다.
-l
라이브러리 탐색경로에서 줄임형식으로 라이브러리를 부를 때 사용하는 옵션이다. -lm -lX11과 같은 형식이다.(전자는 수학라이브러리, 후자는 엑스라이브러리이다.) 줄임형식을 쓰지 않고 라이브러리를 부를려면 라이브러리의 위치를 절대경로로 써주면 된다. 예를 들어 -lm의 경우 /lib/libm.so.6이라고 해주면 된다.
-s
실행파일에서 심볼테이블을 삭제한다. 그래서 실행파일 크기를 작게한다.
-O
코드최적화를 위한 코드이다. O0이면 최적화를 안한다는 뜻이고 O2이면 최대를 의미한다. O2이상은 지원되지 않는다. O9라고 써도 O2로 최적화된다.
-g
디버깅정보를 포함시킨다.