[C] C 프로그램의 컴파일 과정
C 프로그램의 컴파일 과정
C 소스코드를 짠 후 컴파일을 하게되면 다음과 같은 4가지 일이 일어난다.
1. 전처리 ( Preprocessor )
2. 컴파일 ( Compilation )
3. 어셈블리 ( Assembly )
4. 링킹 ( Linking )
컴파일 과정을 테스트해보기 위해 간단한 test.c 프로그램을 작성한다.
#include <stdio.h>
// Comment
#define STRING "Test String"
#define COUNT (5)
int main() {
int i;
for (i=0; i<COUNT; i++) {
puts(STRING);
}
return 0;
}
가장 먼저 컴파일러는 C 전처리기로 소스코드를 보낸다. C전처리기는 3가지 일을 담당한다.
1. 텍스트 치환
2. 주석 제거
3. 파일 포함( include )
gcc -E 옵션을 주면 1번(전처리)만 수행한 결과를 확인할 수 있다.
gcc -E test.c > test.txt
다음으로 2번째(컴파일) 과정을 진행한 후의 결과를 확인하기 위해선 gcc -S 옵션을 사용한다.
gcc -S test.c
gcc -S 옵션을 주어 컴파일을 하게되면 'test.s' 라는 어셈블리코드로 변환된 파일이 나온다.
'Programming > C C++' 카테고리의 다른 글
[C++ 문법] 'const' 위치에 따른 멤버함수의 의미 (2) | 2019.05.15 |
---|---|
[C] 네트워크 인터페이스에 관한 정보 - ioctl() (0) | 2019.02.02 |
[C] Reserved Names (0) | 2019.01.31 |
[C] 동적 메모리 할당 ( Dynamic Memory Allocation ) (3) | 2019.01.11 |
[C] File I/O (0) | 2019.01.10 |
댓글
이 글 공유하기
다른 글
-
[C] 네트워크 인터페이스에 관한 정보 - ioctl()
[C] 네트워크 인터페이스에 관한 정보 - ioctl()
2019.02.02 -
[C] Reserved Names
[C] Reserved Names
2019.01.31 -
[C] 동적 메모리 할당 ( Dynamic Memory Allocation )
[C] 동적 메모리 할당 ( Dynamic Memory Allocation )
2019.01.11 -
[C] File I/O
[C] File I/O
2019.01.10