일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- db
- VIM
- 안드로이드
- java
- Graph
- Database
- 동적 계획법
- 알고리즘
- Data Structure
- 백준
- frontend
- Redux
- Python
- 프로그래머스
- network
- Javascript
- react
- 리트코드
- git
- Algorithm
- vscode
- 다이나믹 프로그래밍
- DP
- DFS
- TypeScript
- CS
- 그레이들
- 자바
- BFS
- LeetCode
Archives
- Today
- Total
목록컴파일 과정 (1)
늘 겸손하게

프로그램 컴파일 과정 C 언어 기준으로 설명하겠습니다. 컴파일 과정은 크게 전처리 과정 -> 컴파일 과정 -> 어셈블리 과정 -> 링킹 과정을 거친다. 소스 코드 파일(*.c)이 전처리 과정 (Pre-processing)을 거치면 전처리된 소스 코드(*.i)가 되고 컴파일러를 거치면 어셈블리어 파일이 되고 어셈블리어 파일이 어셈블러를 거치면 목적 코드가 됩니다. 링커는 목적 코드와 프로그램 내에 있는 라이브러리 함수와 다른 목적코드들을 결합해 실행 파일(exe, out)을 만듭니다. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환합니다. 컴파일 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환합니다. 어셈블리 어셈블리어는 목적 코드(object code)..
Computer Science/Operating System
2023. 4. 22. 22:16