2015년 6월 22일 월요일

20150622 ★★★★★include(포함하다) #으로 시작하는 전처리 언어는 끝에 ;가 붙지 않는다★★★★★

include(포함하다) #으로 시작하는 전처리 언어는 끝에 ;가 붙지 않는다!!!

목적(Object) 파일 생성 [ -c 옵션 ]


목적파일은 컴퓨터가 이해할 수 있도록 구성되어 있는 기계어로 저장된 파일이다. 
C컴파일러는 정확하게 말해서 그 자체가 컴파일러라기보다는 소스파일을 읽어 실행파일을 만드는데 필요한 각 단계별 명령어를 호출하는 연결자라고 할 수 있다. 
즉, gcc 와 같은 C 컴파일러는 입력받은 소스파일을 기반으로 cpp, cc1, as, ld 명령어를 
순차적으로 호출하여 실행파일을 만든다. 

실행파일이 만들어지기까지 소스파일이 거치는 단계별 과정은 다음과 같다.

0. main.c - >main.i -> main.asm -> main.obj -> main.exe

1. 전처리 단계 - 전처리기 (cpp) *.i <- c언어가 아닌것을 c로 변환 (cl /P main.c)
(전처리 언어는 끝에 ;가 붙지 않는다 "*" <-현재디렉토리 <*> <-찾아서불러오기)
pre(~앞에 pre-[동사・명사・형용사에서] <‘… 전의', ‘미리'의 뜻을 나타냄>)proccess(처리)
: #include, #define 등 #으로 시작하는 문법 사항이 적절히 전처리된 
C 언어 소스파일 생성

2. 컴파일 단계 - 컴파일러 (cc1) *.asm <- cl /Fa main.c(*.obj파일을 같이 생성)
2단계까지 Text파일로 볼수있음(3단계부터 )
: C 언어 소스파일은 컴파일 과정을 거쳐 어셈블리 소스 파일이 됨

3. 어셈블 단계 - 어셈블러 (as) *.obj <- cl /c main.c(80x86계열 기계어) 실행X
(확장자를 bin으로 교체시 비주얼스튜디오에서 헥사뷰로 볼수있음)
:어셈블리 소스 파일은 어셈블 과정을 거쳐 목적 파일이 됨

4. 링크 단계 - 링커 (ld) *.exe <- cl /O main.c(*.obj파일을 같이 생성) = cl main.c(1~4)
: 목적 코드는 라이브러리와 링크되어 실행 가능한 파일이 됨

댓글 없음:

댓글 쓰기