← 질문 목록
#194깊이 0
소스 코드가 실행 파일로 변하는 과정은 무엇인가?
전처리기, 컴파일러, 어셈블러, 링커가 순차적으로 처리한다.
- 소스 코드
그다음은 전처리기입니다. 매크로 확장 및 헤더 포함
전처리기그다음은 컴파일러입니다. 어셈블리 코드로 변환
컴파일러그다음은 어셈블러입니다. 기계어로 변환
어셈블러그다음은 링커입니다. 실행 파일 생성
링커
전처리기는 #include와 같은 지시문을 처리한다. 불필요한 주석을 제거하고 매크로를 실제 값으로 치환한다.
컴파일러는 전처리된 코드를 어셈블리 언어로 바꾼다. 구문 오류와 타입 같은 정적 오류를 잡고 최적화한다. 논리가 틀린 것은 못 잡는다.
어셈블러는 이를 CPU가 읽는 이진 기계어로 바꾼다. 하지만 이 단계의 파일은 다른 모듈과의 연결 정보가 없다.
링커는 여러 오브젝트 파일을 하나로 합친다. 외부 함수 호출부의 실제 메모리 주소를 연결해 최종 실행 파일을 만든다.