Maker/Linux

gcc 옵션

shyun 2010. 6. 25. 21:40

gcc -v : gcc 버전 보기

gcc -o hello hello.c : hello라는 실행 화일을 만들때

gcc -c : 오로지 컴파일 작업만 하고 싶을 경우, 목적어 파일(*.o)만 만들어 진다.
ex)
$ gcc -c foo.c bar.c
$ gcc -o baz foo.o bar.o
$ ./baz

gcc -c myprog1.c -Iinclude
: 현재 디렉토리 아래 include라는 디렉토리에 헤더 화일 있음.
ex)
#include <stdio.h> -> 시스템 표준 헤더 디렉토리인 /usr/include를 기준으로 화일을 찾아서 포함
#include "my_header.h" -> 지금 컴파일러가 실행되고 있는 현재 디렉토리를 기준으로 헤더 화일을 찾음
-I옵션 -> 명시적으로 디렉토리 지정해줌
주의)
1. 디렉토리 명은 -I라는 문자 바로 다음에 붙여서 쓴다.

gcc -o say_linux hello.c -lmylib -L.
: 라이브러리에 대한 정보를 알려 준다.
ex)
----------
-myfunc.h-
----------
extern void say_hello ( void );

----------
-myfunc.c-
----------
#include <stdio.h>
#include "myfunc.h"

void
say_hello ( void )
{
  printf ( "Hello, Linux guys!\n" );
}

---------
-hello.c-
---------
#include "myfunc.h"

int
main ( void )
{
  say_hello ();
  return 0;
}

위에 소스에서 myfunc을 라이브러리로 만들기
$ gcc -c myfunc.c
$ ar r libmylib.a myfunc.o
$ ar s libmylib.a
$ ar t libmylib.a myfunc.o
$ gcc -o say_linux hello.c -lmylib -L.

-> -l(L의 소문자) 옵션
:link할 라이브러리를 명시해주는 옵션. -l에 붙여 쓰며 libmylib.a라는 라이브러리를 만들었을경우 -lmylib라고 적는다.

-> -L 옵션
:라이브러리 위치를 정해 준다. 보통 리눅스는 /lib, /usr/lib, /usr/local/lib와 같은 정해진 장소에서만 라이브러리를 찾는다. 예를들어 -L.은 현재 디렉토리에서 라이브러리를 찾으라고 알려준다.


*참조
http://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make.html