2010년 4월 20일 화요일

GCC

GCC
GNU Compiler Collection
원래 GNU C Compiler의 의미였으나, 이후 C++, Java, Fotran등을 모두 compile할 수 있을 정도로
  커져서 'Compiler Collection'의 의미로 바뀜.

Compile 과정
전처리기 → Compile → Assembler → Linker
(source code) →  (executive file)
-전처리기: C pre processor
       source file의 주석 제거 및 define을 치환하는 기능등을 함.
-C compiler: 전처리기를 거친 source file을 assembly file로 변환
-Assembler: assembly file을 object file로 변환
-Linker: Object file들을 묶어서 실행 file로 변환

Options
-o: 출력 file 명을 지정할 때 사용
-c: Linking 과정은 진행하지 않고, *.o file인 object file까지만 생성함.
-o1~o3: 최적화 수준을 지정함. 숫자가 클수록 높은 수준의 최적화가 이루어짐
-g: debugging 을 위한 정보를 compile하면서 생성하게 됨.

Ex)
만들고자 하는 program은 main.c, read.c, write.c로 구성되어 있고,
모두 io.h라는 header file을 사용한다고 가정하면...
아래의 순서로 진행하면 됨.

%gcc -c main.c
%gcc -c read.c
%gcc -c write.c
%gcc -o test main.o read.o write.o

이 과정은 compile하고자 하는 file이 세개뿐이라서 간단하나,
100개가 넘어가는 등, file수가 많아지면, compile에 어려움. → use "make" utility.!!

etc: 통합개발환경(IDE: Integrated Development Environment)
예를 들어 MS Visual Studio 같은 것을 말한다.
즉, program개발에 필요한 모든 기능(editor, compiler, linker, debugger, ...)을 통합적으로 합쳐서
만들어 놓은 것을 말함.

이 반대의 개념으로는 "개별 개발 환경"이 있고,
Linux system에서 vi editor, gcc compiler 등으로 구분되어져 있는 개발 환경이 그 예임.

댓글 없음:

댓글 쓰기