---
description: 프로세스 컴파일 과정
---

# Process of compiling a process

<figure><img src="https://2804243633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfV6clXG953LqFieNgWUf%2Fuploads%2Fkx7drGJrKxNFMSyuMrec%2Fimage.png?alt=media&#x26;token=4ea54e28-2868-4b13-ab2c-e70da1d85d64" alt=""><figcaption></figcaption></figure>

**전처리** : 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 메크로를 치환.

**컴파일러** : 오류, 처리, 코드 최적화 작업을 하며 어셈블리어로 변환.

**어셈블러** : 어셈블리어는 목적 코드로 변환된다.

**링커** : 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만듬.

**정적** **라이브러리** : 프로그램 빌드시 라이브러리의 모든 코드를 넣는 방식. +외부 의존도 낮음 -코드 중복, 메모리 효율성

**동적** **라이브러리** : 프로그램 실행시 DLL이라는 함수 정보를 통해 참조하여 라이브러리를 사용. +메모리 효율성 –높은 외부 의존도
