Codes/C

GCC의 구조

2017. 7. 6. 16:21

GCC의 구조


1. GCC의 역사

- Ultra sparc machine

 - 처음에는 크로스컴파일용이 아니였음.

2. GCC의 구조

일반 커파일러 구조

 Lexical Analyzer - Toenizer - Parse - Linker

  - Linker : obj 파일들을 연결함
  - obj : 변수로 선언했던 부분이 아직 변수로 남아 있음
    Linking 이 끝나야 메모리 값이 변수값에 대칭됨

4 stage

 1 stage : pure C compiler -> 변수이름이 주소로 나옴 ( 주소가 나오는 실행형식이 없는 a.out 포멧 실행 파일, 동적 할당 라이브러리 사용 불가 )
 2 stage : pure C Compiler + Standard I/O (Kernel 헤더정보 : 실행형식, 메모리 번지수, 스레드 등... 커널에서 지정한 표준을 이용해서 컴파일)
 3 stage : Static C Compiler + glibc ( Standard C Library )
 4 stage : Final Stage + Link available ( 동적할당 가능 )

// 하드웨어에 내장되어 있는 악성코드를 찾으려면 크로스 컴파일에 빠삭해야된다는 멘토님의 말씀,,,



'Codes > C' 카테고리의 다른 글

return과 exit()의 차이  (0) 2017.08.28
pcap  (0) 2017.07.13
zlib 분석  (0) 2017.07.08
sql에서 NULL 비교  (0) 2017.03.31
[C] perror() 함수  (5) 2016.09.11