from Server/└ Linux(Fedora) 2009. 8. 5. 21:48
1. gcc란?
- 리눅스에서 컴파일 시 사용하는 것( Microsoft Visual C++ 과 같은역할.)

2. gcc 컴파일 순서
전처리(processer)->전처리 파일("xx.i")->컴파일러(compiler)->어셈블리어 파일("xx.s")
->어셈블러(assembleer)->오브젝트("xx.o")->링커(linker)->실행파일("*.exe")

* 전처리 단계
- #include, #define등의 전처리 처리
- #include 헤드파일지정시 < > : 기본디렉토리 “ ” : 현재디렉토리에서
head파일을 참조한다.
- 그 결과로 "xx . i" 파일 생성
- "xx . I" 파일엔 키워드를 쓰게끔 전역함수가 설정 되어있다.ex)printf, scanf 등

*컴파일 단계
- 어셈블리어 파일 생성하는 단계 임시파일임
- 컴퓨터가 읽을수 있게 숫자등으로 치환 // 치환화일을 "xx . s"저장

*어셈블리어 단계
- 기계어코드( "xx . s" )을 읽어서 목적코드( "xx . o" )를 생성하는 단계

*링크 단계
- 여래개의 파일로 나누어져 있거나, 라이브러리 함수등
존재 할 때 서로 연결 시켜서 실행 가능한 프로그램으로
생성하는 단계

* 실행파일 생성
-링크단계가 끝나면 실행파일이 생성된다.

p.s. 리눅스에서 gcc 명령어로 소스파일(*.c)을 컴파일을 하게되면 /temp 에 *.i *.x *.o 파일은
임시로 저장되었다가 실행파일 생성후 사라진다.

<임시 파일 보기>
#gcc --save-temps -o 생성 될 실행파일 소스파일( * . c )

3. gcc 간단 사용방법("xx.c"->"*.exe")
---------------hello.c---------------------
#include

int
main ( void )
{
(void) printf ( "Hello, World\n" );
return 0;
}
-------------------------------------------
$ gcc -o hello hello.c
$
이처럼 아무것도 뜨지 않으면, 컴파일 성공이에요.
gcc -o {실행화일명} {c 소스명}
즉, -o 옵션이 출력(output) 파일명을 정하는 옵션이고
{실행화일명} 은 출력파일명을 써주면 되요.

그다음에 실행은
$ ./hello
Hello, World
$
이렇게 되면 끝~~

/********참고링크**********
-gcc 와 make 에 대해 잘나와있어요.
http://blog.naver.com/soojin001?Redirect=Log&logNo=140005614933
,